从键盘读入n个整数,这n个数都是1~10之间的数,请从小到大输出每个出现过的数,以及统计出每个数出现的次数? 比如:假设读入5个数,分别为1 2 3 3 5,统计结果如下:1出现1次,2出现1次,3出现2次,5出现1次。 输出格式如下: 1 1 2 1 3 2 5 1C++
时间: 2024-02-13 07:02:23 浏览: 86
输入一些数字,输出每个数重复出现的次数
以下是 C++ 实现的代码:
```cpp
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
sort(nums.begin(), nums.end()); // 使用 sort 函数对数组排序
int count = 1;
for (int i = 1; i <= 10; i++) { // 从1到10遍历每个数
for (int j = 0; j < n; j++) {
if (nums[j] == i) { // 如果第 j 个数等于当前数 i
cout << i << " " << count << " "; // 输出当前数和出现次数
count++; // 统计出现次数
}
}
count = 1; // 重置出现次数
}
cout << endl;
return 0;
}
```
这里使用了向量(vector)来存储输入的 n 个整数,并使用 `sort()` 函数对数组进行排序。然后,从 1 到 10 遍历每个数,统计它出现的次数并输出。需要注意的是,每遍历到一个新的数,都需要将出现次数 `count` 重置为 1。
阅读全文