c语言输入某班学生某门课的成绩(最多不超过40人),当输入为负值时,表示输入结束, 用函数编程统计成绩高于平均分的学生人数。 要求按如下原型编写统计成绩在全班平均分及平均分之上的学生人数 int GetAboveAver(int score[], int n); **输入要求:"%d" **输出要求: "Total students are %d\n" "Average score is %d\n" "Students of above average is %d\n"
时间: 2024-03-14 12:48:21 浏览: 60
好的,我可以帮你解答这个问题。
首先,我们需要明确一下函数的功能:输入学生的成绩,计算平均分,然后统计成绩高于平均分的学生人数。
根据题目要求,我们可以先定义一个数组来存储学生的成绩,同时用一个变量记录数组中实际存储的成绩个数。在输入过程中,当输入的成绩为负数时,输入结束。
接着,我们计算平均分。可以遍历数组,累加成绩,最后除以实际存储的成绩个数即可。然后我们再遍历数组,统计成绩高于平均分的学生人数。
最后,我们需要输出结果,包括总人数、平均分和成绩高于平均分的人数。
下面是完整的代码实现:
```c
#include <stdio.h>
// 统计成绩高于平均分的学生人数
int GetAboveAver(int score[], int n) {
int sum = 0, cnt = 0;
for (int i = 0; i < n; i++) {
sum += score[i];
}
int avg = sum / n;
for (int i = 0; i < n; i++) {
if (score[i] > avg) {
cnt++;
}
}
return cnt;
}
int main() {
int score[40], n = 0, s;
while (scanf("%d", &s) == 1 && s >= 0) {
score[n++] = s;
}
int cnt = GetAboveAver(score, n);
printf("Total students are %d\n", n);
printf("Average score is %d\n", n > 0 ? (sum / n) : 0);
printf("Students of above average is %d\n", cnt);
return 0;
}
```
希望能对你有所帮助!
阅读全文