[题目描述]
输入一些学生的分数si,输出哪个分数出现的次数最多?如果有多个并列,从小到大输出。(学生数不超过1000个,si<=100)
输入
若干以空格分开的整数,表示学生分数。
输出
一行,从小到大,输出次数最多的数。
样例输入
87 66 45 87 66
样例输出
66 87
☑答案+思路
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
map<int, int> scores;
int score;
// 输入分数
while (cin >> score) {
scores[score]++;
}
// 找到出现次数最多的分数
int maxCount = 0;
for (auto it = scores.begin(); it != scores.end(); ++it) {
maxCount = max(maxCount, it->second);
}
// 输出出现次数最多的分数
for (auto it = scores.begin(); it != scores.end(); ++it) {
if (it->second == maxCount) {
cout << it->first << " ";
}
}
return 0;
}
☑so,你学废了吗?
本文章为zovetr小面包有点甜撰写,如有侵权,请及时告知