将存储位置与数据本身对应起来的存储手段就是Hash。
本题相对于上一题就很简单了。思路很巧妙 运用hash数组 存放每一个分数的人数,最后直接输出数组中某下标对应分数的值就可以了。
#include<stdio.h>
int main(){
int n;
while(scanf("%d",&n)!=EOF&&n!=0){
int Hash[101]={0};
for(int i=1;i<n;i++){
int x;
scanf("%d",&x);
Hash[x]++;
}
int x;
scanf("%d",&x);
printf("%d\n",Hash[x]);
}
return 0;
}
本文介绍了一种利用Hash数组来高效统计不同分数出现次数的方法。通过预先定义一个大小为101的整型数组来作为Hash表,该数组的每个元素对应的下标即为学生可能获得的分数值。遍历输入的所有分数,并将对应分数的Hash数组值加一,最后输出指定分数的学生人数。
1040

被折叠的 条评论
为什么被折叠?



