用C语言编写一个程序,利用循环输入10个学生的成绩,计算这10个成绩的平均分、最高分和最低分并输出计算结果。 提高要求:加入成绩校验(成绩在0~100为合法),遇到非法数据提示重新输入,直至合法,然后计算。
时间: 2024-12-06 16:33:08 浏览: 38
```c
#include <stdio.h>
int main() {
int scores[10];
float total = 0;
int max = 0, min = 101; // 初始值设为大于所有可能的成绩
printf("请输入10个学生的成绩(0-100之间):\n");
for (int i = 0; i < 10; i++) {
do {
printf("请输入第%d个学生的成绩: ", i + 1);
scanf("%d", &scores[i]);
if (scores[i] < 0 || scores[i] > 100) {
printf("成绩超出范围,请输入0-100之间的整数:\n");
} else {
total += scores[i];
if (scores[i] > max) {
max = scores[i];
}
if (scores[i] < min) {
min = scores[i];
}
}
} while (scores[i] < 0 || scores[i] > 100);
// 清空输入缓冲区,防止干扰下一个输入
getchar();
}
float average = total / 10;
printf("\n总平均分为: %.2f\n", average);
printf("最高分为: %d\n", max);
printf("最低分为: %d\n", min);
return 0;
}
```
在这个程序中,我们首先声明一个数组`scores`用于存储10个学生的成绩。我们使用一个循环来依次获取每个学生的分数,如果输入的不是0到100之间的数字,就提示用户重新输入。同时更新总分、最大分和最小分。最后,计算并输出平均分、最高分和最低分。
阅读全文