c中运用数组给输入的成绩排序并且统计各分数的人数
时间: 2023-06-10 08:04:25 浏览: 50
好的,我会为您解答这个问题。以下是使用冒泡排序法对输入成绩排序并统计各分数人数的 C 代码示例:
```
#include <stdio.h>
#define MAX_NUM 100 // 定义数组最大长度
int main() {
int grades[MAX_NUM]; // 定义成绩数组
int n, i, j, tmp, count;
printf("请输入考生人数:");
scanf("%d", &n);
// 输入成绩
for (i = 0; i < n; i++) {
printf("请输入第 %d 个考生的成绩:", i+1);
scanf("%d", &grades[i]);
}
// 冒泡排序
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (grades[j] > grades[j+1]) {
tmp = grades[j];
grades[j] = grades[j+1];
grades[j+1] = tmp;
}
}
}
// 统计各分数人数
for (i = 0; i < n; i += count) {
count = 1;
for (j = i+1; j < n && grades[j] == grades[i]; j++) {
count++;
}
printf("成绩为%d的人数为%d\n", grades[i], count);
}
return 0;
}
```
在这段代码中,我们首先定义了一个长度为 MAX_NUM 的整型数组 grades 用来存储输入的成绩。接着使用冒泡排序法将输入的成绩从小到大排序,然后再使用两个 for 循环遍历整个数组,分别统计每个分数对应的人数,并输出结果。可以看到,其中排序和统计人数都是通过数组的方式完成的。