小白C语言编程实战(16):统计4门课的优秀率和不及格率

小白C语言编程实战(16):统计4门课的优秀率和不及格率,第1张

这是《小白C语言编程实战》系列的第16篇。
上一篇:小白C语言编程实战(15):演示插入排序


文章目录
      • 题目
      • 要求
      • 提示
      • 参考代码

题目

某班有N人,每人上4门课,输入每门课所有同学的成绩,统计每门课的优秀率和不及格率。程序中假设N为10。

要求

输入输出格式示例:

输入:

92 78 73 59.5 80 91 89 70 65 68<回车>

93 94 90 89 80 85 78 73 66 62<回车>

87 84 86 78 76 73 65 55 45 42<回车>

90 92 78 74 76 73 65 66 50 58<回车>

输出:

1: Excellent=20.00%,Fail=10.00%

2: Excellent=30.00%,Fail=0.00%

3: Excellent=0.00%,Fail=30.00%

4: Excellent=20.00%,Fail=20.00%

提示

定义一个二维数组,用来表示和存放4门课程的所有成绩,程序中假设该班有10个人,可以采用下面方法定义数组:

#define N 10 /* 这里定义一个符号常量N */
float course[4][N+2]={0};

其中,course[k][0] ~ course[k][N-1]存放某门课程的N个成绩,course[k][N]存放该课程的优秀率,course[k][N+1]存放该课程的不及格率,k=0~3依次对应4门课。

另外,要输出%,在格式串中用两个%,即%%即可。

参考代码
#include 
#include 

#define N 10

// course[k][0] ~ course[k][N-1]存放某门课程的N个成绩,
// course[k][N]存放该课程的优秀率,
// course[k][N+1]存放该课程的不及格率
int main(int argc, char *argv[]) {
	float course[4][N+2]={0};
	
	int i,j;
	//依次处理4门课程 
	for(i=0;i<4;i++) {
		// 优秀人数 
		int excellent = 0;
		// 不及格人数 
		int fail = 0;
		for(j=0;j<N;j++) {
			scanf("%f", &course[i][j]);
			if(course[i][j] >= 90) {
				excellent++;
			} else if(course[i][j] < 60) {
				fail++;
			}
			course[i][N] = 100*excellent/(float)N;
			course[i][N+1] = 100*fail/(float)N;
		}
	}
	
	for(i=0;i<4;i++) {
		printf("%d: Excellent=%.2f%%,Fail=%.2f%%\n", i+1, course[i][N], course[i][N+1]);
	}
	return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/2990840.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-23
下一篇 2022-09-23

发表评论

登录后才能评论

评论列表(0条)

保存