用c语言编程输入假设干学生一门功课的成绩,统计各分数段的人数。凡不及格〔60分以下〕都由一个计数器来统计,其它以10分作为一个数段,100分作为一个分数段
时间: 2024-03-20 17:39:50 浏览: 136
C语言输入学生成绩,计算并输出这些学生的最低分、最高分、平均分。
好的,以下是用 C 语言编写的程序:
```c
#include <stdio.h>
int main() {
int scores[100], count = 0;
int score_count[11] = {0};
printf("请输入学生成绩,输入 -1 结束:\n");
// 输入成绩,以 -1 结束
int i = 0;
while (1) {
int score;
scanf("%d", &score);
if (score == -1) {
break;
}
scores[i++] = score;
}
int n = i;
// 统计成绩分布
for (i = 0; i < n; i++) {
int score = scores[i];
if (score < 60) {
count++;
} else {
int index = (score - 50) / 10;
if (index >= 0 && index <= 10) {
score_count[index]++;
}
}
}
// 输出结果
printf("不及格学生数量:%d\n", count);
printf("各分数段学生数量:\n");
for (i = 0; i < 11; i++) {
if (i == 0) {
printf("0-59分:%d\n", score_count[i]);
} else if (i == 10) {
printf("100分:%d\n", score_count[i]);
} else {
printf("%d-%d分:%d\n", i * 10, i * 10 + 9, score_count[i]);
}
}
return 0;
}
```
在这个程序中,我们首先定义了一个长度为 100 的整型数组 `scores`,用来存储学生成绩。定义了一个计数器 `count`,用来统计不及格学生的数量。还定义了一个长度为 11 的整型数组 `score_count`,用来存储各个分数段的学生数量。其中,`score_count` 中每个元素的下标表示分数段的编号,例如 `score_count[0]` 表示 0-59 分这个分数段,`score_count[1]` 表示 60-69 分这个分数段,以此类推。
接下来进入一个循环,每次循环从用户输入中读取一位学生的成绩,并将成绩添加到 `scores` 数组中。当输入 -1 时,跳出循环。然后,我们统计各个分数段的学生数量,遍历 `scores` 数组,如果成绩小于 60 分,就将 `count` 计数器加 1。否则,计算该成绩所属的分数段的编号,并将相应的 `score_count` 数组元素加 1。
最后,我们输出不及格学生数量和各个分数段的学生数量,格式化输出分数段的范围和学生数量。
阅读全文