题目链接:
描述
读入N名学生的成绩,将获得某一给定分数的学生人数输出。
输入描述:
测试输入包含若干测试用例,每个测试用例的格式为 第1行:N 第2行:N名学生的成绩,相邻两数字用一个空格间隔。 第3行:给定分数 当读到N=0时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。
输出描述:
对每个测试用例,将获得给定分数的学生人数输出。
示例1
输入:
3
80 60 90
60
2
85 66
0
5
60 75 90 55 75
75
0
输出:
1
0
2
思路:
使用一个map,将成绩作为键,将这个成绩的人数作为值,对于每一个学生的成绩做出判断:如果之前已经在map中保存,就把值直接加1,否则先赋值为0,再加1。
源代码:
#include<iostream>
#include<map>
using namespace std;
//例题10.4 统计同成绩学生人数
int main()
{
int n;
while (cin >> n) {
if (n == 0) {
break;
}
map<int, int> maps;
for (int i = 0; i < n; i++) {
int num;
cin >> num;
if (maps.find(num) == maps.end()) {
maps[num] = 0;
}
maps[num] += 1;
}
int target;
cin >> target;
cout << maps[target] << endl;
}
return 0;
}