C++【描述】 输入若干个整数,当输入0时表示结束,统计每个输入整数的出现次数。 【输入】 输入若干个整数,整数之间以空格间隔,当输入0时表示结束。 【输出】 分行输出每个整数出现的次数。行末不能有多余空格。 【输入示例】 11 22 35 68 97 63 22 68 11 0【输出示例】 11: 2 22: 2 35: 1 63: 1 68: 2 97: 1【提示】 可以使用map来保存二元组<输入整数,出现次数>。
时间: 2024-02-24 10:58:14 浏览: 33
c++输入一个整数,输出一个整数
以下是 C++ 的代码实现:
```cpp
#include <iostream>
#include <map>
using namespace std;
int main() {
map<int, int> freq;
int num;
while (cin >> num && num != 0) {
freq[num]++;
}
for (auto it = freq.begin(); it != freq.end(); it++) {
cout << it->first << ": " << it->second << endl;
}
return 0;
}
```
解释一下代码:
首先定义一个 `map<int, int>` 类型的变量 `freq`,用来保存每个整数出现的次数;
然后使用 `while` 循环读入整数,当读入的整数为 0 时结束循环;
循环体内将读入的整数作为键,在 `freq` 中查找对应的值并将其加一,即可统计该整数出现的次数;
循环结束后使用 `auto` 关键字和迭代器遍历 `freq`,输出每个整数及其出现次数。
注意,`map` 中元素是按照键值升序排序的,因此不需要再进行排序操作。
阅读全文