题目描述 有一个班有若干名同学参加了C语言考试,现有这些同学的成绩,请计算他们的平均成绩,并输出高于平均成绩的人数。 输入 输入数据有多组,第1行的整数T表示测试数据的组数。后面有T行,每行的第1个数n(n<=30)表示该组测试数据中的人数,后跟n个同学的成绩(均为0到100之间的整数),各成绩之间用空格分隔。 输出 对于每组测试数据,输出结果单独占一行,分别输出平均成绩及高于平均成绩的人数,平均成绩输出两位小数,数据之间用一个空格分隔。
时间: 2024-02-13 14:02:13 浏览: 110
用C语言编制查询某班同学的平均成绩
这是一道比较典型的输入输出题目,需要用到循环和数组,下面是一份实现代码:
```c
#include <stdio.h>
int main() {
int T, n, i, j, sum, count;
int scores[30];
double avg;
scanf("%d", &T);
for (i = 0; i < T; i++) {
scanf("%d", &n);
sum = 0;
count = 0;
for (j = 0; j < n; j++) {
scanf("%d", &scores[j]);
sum += scores[j];
}
avg = (double)sum / n;
for (j = 0; j < n; j++) {
if (scores[j] > avg) {
count++;
}
}
printf("%.2lf %d\n", avg, count);
}
return 0;
}
```
首先读入测试数据的组数 `T`,然后用一个 `for` 循环处理每组测试数据。对于每组测试数据,先读入同学的人数 `n`,然后用一个循环读入每个同学的成绩并计算总分 `sum`。接着计算平均成绩 `avg`,再用一个循环计算高于平均成绩的人数 `count`。最后用 `printf` 输出结果。
需要注意的是,题目中要求平均成绩输出两位小数,可以通过在 `printf` 中使用 `"%.2lf"` 格式字符串来实现。
阅读全文