jobdu1018

九度题目1018:统计同成绩学生人数

题目描述:

读入N名学生的成绩,将获得某一给定分数的学生人数输出。

输入:

第1行:N
第2行:N名学生的成绩,相邻两数字用一个空格间隔。
第3行:给定分数
当读到N=0时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。

输出:

对每个测试用例,将获得给定分数的学生人数输出。

样例输入:

3
80 60 90
60
2
85 66
0
5
60 75 90 55 75
75
0

样例输出:

1
0
2

来源:

2006年浙江大学计算机及软件工程研究生机试真题

分析:

我们可以看到,输入的分数严格限定在0-100之间,同时它又一定是一个整数。这样,输入的数据一共只有101种可能。我们只要为这101种可能分别计数,便能在输入结束时得知每一种分数的重复情况。

代码:

#include<stdio.h>
int main() 
{
    int N;
    while(scanf("%d",&N)!=EOF && N!=0) 
    {
        int Hash[101] = {0};
        for(int i=0;i<N;i++) 
        {
            int score;
            scanf("%d",&score);
            Hash[score]++;
        }
        int searchedScore;
        scanf("%d",&searchedScore);
        printf("%d\n",Hash[searchedScore]);
    }
    return 0;
}

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值