题目链接->link
思路
- 因为分数范围0~100,故用int型hashmap[101]存储每一个分数出现的次数即可。
- 对于想要查询的分数,不用数组全部输入再判断;而是每输入一个分数就输出一个次数。
代码
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <iostream>
using namespace std;
const int maxn=100005;
int score[maxn];
int hashmap[101];//存储分数出现的次数
int main(){
memset(hashmap, 0, sizeof(hashmap));//初始化分数出现次数为0
int n,k;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&score[i]);
hashmap[score[i]]++;
}
scanf("%d",&k);
for(int i=0;i<k;i++){
int x;
scanf("%d",&x);
printf("%d",hashmap[x]);
if(i!=k-1)printf(" ");
}
printf("\n");
return 0;
}