问题 A: 统计同成绩学生人数
时间限制 : 1.000 sec 内存限制 : 32 MB
题目描述
读入N名学生的成绩,将获得某一给定分数的学生人数输出。
输入
测试输入包含若干测试用例,每个测试用例的格式为
第1行:N
第2行:N名学生的成绩,相邻两数字用一个空格间隔。
第3行:给定分数
当读到N=0时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。
输出
对每个测试用例,将获得给定分数的学生人数输出。
样例输入
4
70 80 90 100
80
3
65 75 85
55
5
60 90 90 90 85
90
0
样例输出
1
0
3
#include <iostream>
#include <unordered_map>
using namespace std;
unordered_map<int, int> grade;
int main() {
int n;
ios::sync_with_stdio(false);
cin.tie(0);
for (int i = 0; i <= 100; ++i) {
grade[i] = 0;
}
while (cin >> n, n) {
int number = 0;
for (int i = 0; i < n; ++i) {
cin >> number;
grade[number]++;
}
int m;
cin >> m;
cout << grade[m] << endl;
for (int i = 0; i <= 100; ++i) {
grade[i] = 0;
}
}
return 0;
}
这是一个C++程序,用于读取多个学生的成绩,统计并输出获得特定分数的学生人数。程序首先初始化一个哈希映射来存储每个成绩出现的次数,然后遍历输入的学生成绩,更新对应成绩的计数。最后,根据用户输入的指定分数,从哈希映射中检索并输出计数值。程序会清除哈希映射以便处理下一个测试用例。

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



