请用C++来实现以下需求:在第1行中输入正整数n(≤1000),在第二行中给出n个不超过整型范围的非负整数,数字间以空格分隔。 输出说明 在一行中按格式“M: n1 n2 ...”输出(冒号后有1个空格),其中M是最多次数,n1、n2、……为出现次数最多的数字,按从小 到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。
时间: 2024-02-11 20:07:45 浏览: 60
用C++实现长整数的输入输出
以下是用C++实现的代码,可以满足你的需求:
```cpp
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
map<int, int> cnt;
int maxCnt = 0;
for (int i = 0; i < n; i++) {
int num;
cin >> num;
cnt[num]++;
maxCnt = max(maxCnt, cnt[num]);
}
vector<int> nums;
for (auto p : cnt) {
if (p.second == maxCnt) {
nums.push_back(p.first);
}
}
sort(nums.begin(), nums.end());
cout << maxCnt << ":";
for (int i = 0; i < nums.size(); i++) {
cout << " " << nums[i];
}
cout << endl;
return 0;
}
```
这个程序中,我们使用了一个 `map` 来统计每个数字出现的次数,然后找到出现次数最多的数字,最后按照题目要求输出即可。
阅读全文