思路:
- 建立一个数组,每个元素存储其下标对应成绩出现的次数
代码如下
#include <iostream>
using namespace std;
int num1[101] = {0}; //存放成绩为下标的人数
int main() {
int N; scanf("%d", &N);
for(int i = 0; i < N; i++) {
int score; scanf("%d", &score);
num1[score]++;
}
int K, cnt = 0; scanf("%d", &K);
for(int i = 0; i < K; i++) {
int score; scanf("%d", &score);
if(0 == i) printf("%d", num1[score]);
else printf(" %d", num1[score]);
}
}
反馈:
- 一开始还创建了另外一个和num1一样的数组num2输出来存储输出值
- 因为我一开始以为在读取K个元素的循环中,边读取边输出会导致格式错误
- 然而并不会
注意:
- 如果是用反馈里的方法,数组num2的大小最多是105而不是100