题解
2026-05-04 17:02:39
发布于:湖南
5阅读
0回复
0点赞
题意
输入
第一行:一个数字 N(最多 100 个随机数)
第二行:N 个 1~1000 的整数,里面有重复的数
步骤
去重:重复的数字只留一个,删掉多余的
排序:把剩下不重复的数字从小到大排好
输出
第一行:不重复数字的个数
第二行:排好序的数字
思路
1.把所有数字读进数组
2.对数组从小到大排序
3.遍历数组,只保留和前一个不一样的数字(去重)
4.输出个数和结果
完整代码
#include <iostream>
#include <set> // 包含set容器,用于自动去重和排序
using namespace std;
int main() {
int n;
cin >> n; // 输入随机数个数
set<int> nums; // 定义集合,自动去重+升序排序
int x;
// 循环读入数字并插入集合
for (int i = 0; i < n; i++) {
cin >> x;
nums.insert(x); // 插入集合,重复数字会被自动忽略
}
// 第一行:输出不重复数字的个数
cout << nums.size() << endl;
// 第二行:遍历集合,输出所有数字
for (int num : nums) {
cout << num << " ";
}
return 0;
}

这里空空如也








有帮助,赞一个