简单计算器c语言学生成绩统计 从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时, 输入结束,分别实现下列功能: (1)统计不及格人数并打印不及格学生名单; (2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单; (3)统计各分数段的学生人数及所占的百分比。
时间: 2024-03-07 14:54:11 浏览: 393
下面是一个实现上述功能的 C 语言代码示例:
```c
#include <stdio.h>
#define MAX_STUDENTS 30
int main() {
int scores[MAX_STUDENTS];
int num_students = 0;
int num_failed = 0;
int num_above_average = 0;
int sum_scores = 0;
int max_score = 0, min_score = 100;
int num_0_59 = 0, num_60_69 = 0, num_70_79 = 0, num_80_89 = 0, num_90_100 = 0;
// 输入学生成绩
printf("请输入学生成绩(输入负数结束):\n");
do {
scanf("%d", &scores[num_students]);
if (scores[num_students] >= 0) {
// 统计总分
sum_scores += scores[num_students];
// 统计不及格人数
if (scores[num_students] < 60) {
num_failed++;
printf("不及格学生:%d\n", num_students + 1);
}
// 统计在平均分及平均分之上的学生人数
if (scores[num_students] >= sum_scores / (num_students + 1)) {
num_above_average++;
}
// 统计各分数段的学生人数
if (scores[num_students] >= 0 && scores[num_students] < 60) {
num_0_59++;
} else if (scores[num_students] < 70) {
num_60_69++;
} else if (scores[num_students] < 80) {
num_70_79++;
} else if (scores[num_students] < 90) {
num_80_89++;
} else if (scores[num_students] <= 100) {
num_90_100++;
}
// 统计最高分和最低分
if (scores[num_students] > max_score) {
max_score = scores[num_students];
}
if (scores[num_students] < min_score) {
min_score = scores[num_students];
}
num_students++;
}
} while (scores[num_students - 1] >= 0 && num_students < MAX_STUDENTS);
// 计算平均分
double average_score = (double) sum_scores / num_students;
// 输出统计结果
printf("不及格人数:%d\n", num_failed);
printf("成绩在平均分及平均分之上的学生人数:%d\n", num_above_average);
printf("各分数段学生人数及所占百分比:\n");
printf("0-59分:%d,%.2f%%\n", num_0_59, (double) num_0_59 / num_students * 100);
printf("60-69分:%d,%.2f%%\n", num_60_69, (double) num_60_69 / num_students * 100);
printf("70-79分:%d,%.2f%%\n", num_70_79, (double) num_70_79 / num_students * 100);
printf("80-89分:%d,%.2f%%\n", num_80_89, (double) num_80_89 / num_students * 100);
printf("90-100分:%d,%.2f%%\n", num_90_100, (double) num_90_100 / num_students * 100);
printf("最高分:%d,最低分:%d\n", max_score, min_score);
printf("平均分:%.2f\n", average_score);
return 0;
}
```
该代码会提示用户输入学生成绩,当输入成绩为负数时,输入结束。然后根据输入的成绩实现统计不及格人数、成绩在全班平均分及平均分之上的学生人数、各分数段的学生人数及所占的百分比等功能,并输出统计结果。
阅读全文