已知全省有m个学生参加计算机等级考试,其成绩值均在0到100之间的整数值,且成绩中有很多值重复出现,统计各个分数值重复出现的次数。C语言代码
时间: 2024-05-10 11:16:06 浏览: 13
以下是一种实现方式:
```c
#include <stdio.h>
#define MAX_SCORE 100
int main() {
int m, score, count[MAX_SCORE+1] = {0}; // count数组初始化为0
printf("请输入学生人数m:");
scanf("%d", &m);
printf("请输入每个学生的成绩值:\n");
for (int i = 0; i < m; i++) {
scanf("%d", &score);
count[score]++; // 对应成绩值的出现次数加1
}
printf("各个分数值重复出现的次数如下:\n");
for (int i = 0; i <= MAX_SCORE; i++) {
if (count[i] > 0) { // 只输出出现过的成绩值及其出现次数
printf("%d分出现了%d次\n", i, count[i]);
}
}
return 0;
}
```
该程序定义了一个名为`count`的数组,数组的下标对应成绩值,数组的元素值对应该成绩值出现的次数。程序先读入学生人数m,然后循环读入每个学生的成绩值,并用`count`数组记录每个成绩值出现的次数。最后循环输出每个出现过的成绩值及其出现次数。
相关问题
已知全省有m个学生参加计算机等级考试,其成绩值均在0到100之间的整数值,且成绩中有很多值重复出现,统计各个分数值重复出现的次数。
可以使用一个长度为101的数组count来统计每个分数值出现的次数,初始值全部置零。然后遍历所有的成绩值,以每个成绩值作为下标,在count数组中对应位置的值加1。最终count数组中,下标对应的值即为该分数值出现的次数。以下是示例代码:
```python
m = int(input("请输入全省学生人数:"))
scores = list(map(int, input("请输入学生成绩,以空格分隔:").split()))
count = [0] * 101
for score in scores:
count[score] += 1
for i in range(101):
if count[i] > 0:
print("分数值为{}的人数为{}人".format(i, count[i]))
```
示例输出:
```
请输入全省学生人数:10
请输入学生成绩,以空格分隔:80 60 90 70 80 90 75 75 60 85
分数值为60的人数为2人
分数值为70的人数为1人
分数值为75的人数为2人
分数值为80的人数为2人
分数值为85的人数为1人
分数值为90的人数为2人
```
已知学生考试成绩均为0—100之间的整数值,且成绩中有很多值重复出现,统计各个分数值重复出现的次数。
可以使用一个字典来统计每个分数值出现的次数。遍历学生的成绩,如果该成绩在字典中不存在,则将该成绩作为键,值为1;如果该成绩在字典中已存在,则将该成绩对应的值加1。最后遍历字典,输出每个分数值和其对应的出现次数即可。