请对某次考试的分数,统计各分数段人数,统计原则:分别对10分以下10-19 20-29 30-39 40-49 50-59 60-69 70-79 80-89 90到99 100分为一段,共11段
注意:如果输入分数不在[0,100]之间,不参与统计。
输入格式:
先输入一个整数n,表示将输入n个分数。
再输入n个分数,范围在[0~100].
每个数用空格间隔。
输出格式:
每一行输出一个分数段的人数统计结果。分数段用0~10表示。
输入样例:
在这里给出一组输入。例如:
6
50 60 98 100 0 1000
0: 1
1: 0
2: 0
3: 0
4: 0
5: 1
6: 1
7: 0
8: 0
9: 1
10: 1
最后一排无空行,利用到数组
#include<stdio.h>
int main()
{
int score[11] = {0};
int n,s;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&s);
if(s >= 0 && s <= 100){
score[s/10]++;
}
}
for(int i=0;i<=10;i++){
printf("%d: %d\n",i*10,score[i]);
}
return 0;
}
#include <stdio.h>
int main()
{
int n, i, j, score, freq[11] = {0};
// 输入一个整数n,表示将输入n个分数
printf("请输入分数个数:");
scanf("%d", &n);
// 输入n个分数,范围在[0~100]
for (i = 0; i < n; i++)
{
printf("请输入第%d个分数:", i + 1);
scanf("%d", &score);
// 如果输入分数不在[0,100]之间,不参与统计
if (score < 0 || score > 100)
continue;
// 将分数除以10,得到分数所属的区间
j = score / 10;
// 更新对应区间的频数
freq[j]++;
}
// 输出结果
for (i = 0; i < 11; i++)
{
printf("%d: %d\n", i, freq[i]);
}
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: