:编程从键盘输入若干个学生的成绩,输入负数时表示输入结束,输出平均成绩和低于平均分的学生成绩,其中平均值精确到小数点后两位。c语言
时间: 2023-12-15 14:05:09 浏览: 381
可以这样写:
```c
#include <stdio.h>
int main() {
int num, sum = 0, count = 0;
float average;
int scores[100];
printf("请输入学生成绩(输入负数结束):\n");
do {
scanf("%d", &num);
if (num >= 0) {
scores[count] = num;
sum += num;
count++;
}
} while (num >= 0);
average = (float) sum / count;
printf("平均成绩为:%.2f\n", average);
printf("低于平均分的学生成绩为:");
for (int i = 0; i < count; i++) {
if (scores[i] < average) {
printf("%d ", scores[i]);
}
}
printf("\n");
return 0;
}
```
这个程序包括以下步骤:
1. 定义变量 `num` 用来输入每个学生的成绩,`sum` 记录所有成绩的和,`count` 记录输入的成绩个数,`average` 存储平均值,`scores` 存储所有学生成绩。
2. 使用 `do-while` 循环输入每个学生的成绩,并将正数加入到 `scores` 数组中。
3. 计算平均值。
4. 遍历 `scores` 数组,输出低于平均分的成绩。
注意,程序中没有对输入的成绩个数进行判断,如果输入的成绩个数超过了数组 `scores` 的大小(这里设为了 100),会出现数组越界的错误。如果需要对输入个数进行限制,可以添加一些判断和错误处理的代码。
阅读全文