输入一些学生的分数 ,输出哪个分数出现的次数最多?如果有多个并列,从小到大输出。(学生数不超过1000 个) 若干以空格分开的整数,表示学生分数。 一行,从小到大,输出次数最多的数。 c++代码
时间: 2024-04-14 08:31:09 浏览: 116
好的,以下是一个用C++实现的解决方案:
```cpp
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
int main() {
std::map<int, int> scoresCount;
int score;
// 输入学生分数
while (std::cin >> score) {
scoresCount[score]++;
}
// 找到出现次数最多的分数
int maxCount = 0;
for (const auto& pair : scoresCount) {
maxCount = std::max(maxCount, pair.second);
}
// 输出出现次数最多的分数(按照从小到大的顺序)
bool isFirst = true;
for (const auto& pair : scoresCount) {
if (pair.second == maxCount) {
if (!isFirst) {
std::cout << " ";
}
std::cout << pair.first;
isFirst = false;
}
}
return 0;
}
```
你可以将上面的代码复制到你的C++编译器中运行,然后按照要求输入学生的分数,程序将输出出现次数最多的分数(如果有多个并列,则按照从小到大的顺序输出)。
阅读全文