用户输入若干个成绩(正整数,且不超过60)依次输出:原始顺序的成绩列表(每行10个)、最高分、最低分、平均分、平均分以上的人数和及格人数。c语言代码
时间: 2024-12-06 15:23:10 浏览: 8
这是一个C语言程序,它会按要求处理用户的输入:
```c
#include <stdio.h>
#include <stdlib.h> // 包含随机函数
#define MAX_SCORES 100
#define MIN_SCORE 0
#define MAX_SCORE 60
void process_scores(int *scores, int num_scores) {
int max_score = *scores, min_score = *scores;
double total = 0.0, avg = 0.0, above_avg = 0;
for (int i = 0; i < num_scores; ++i) {
total += scores[i];
if (scores[i] > max_score)
max_score = scores[i];
if (scores[i] < min_score)
min_score = scores[i];
if (scores[i] >= 60) {
above_avg++;
}
}
avg = total / (double)num_scores;
printf("原始成绩列表(每行10个):\n");
for (int i = 0; i < num_scores && i % 10 == 0; i++) {
printf("%d ", scores[i]);
if ((i + 1) % 10 == 0 || i == num_scores - 1) {
printf("\n");
}
}
printf("最高分: %d\n", max_score);
printf("最低分: %d\n", min_score);
printf("平均分: %.2f\n", avg);
printf("平均分以上的人数: %d\n", above_avg);
printf("及格人数: %d\n", above_avg);
}
int main() {
int scores[MAX_SCORES], num_scores = 0;
while (scanf("%d", &scores[num_scores]) != EOF && num_scores < MAX_SCORES) {
if (scores[num_scores] <= MAX_SCORE) {
num_scores++;
} else {
printf("错误:成绩不能超过60,请重新输入。\n");
num_scores--; // 清除上一次无效输入
}
}
process_scores(scores, num_scores);
return 0;
}
```
这个程序首先读取用户输入的成绩,检查是否在范围内,如果输入不符合要求则提示错误并清除上一条记录。然后按照要求输出数据。
阅读全文