【c++编程题】利用set对生成的100个1~100之间的随机整数进行去重排序并输出排序后的数字每个数字中间用空格隔开。【样例输入】无【样例输出】随机数随机的结果并不唯一1 2 4 5 6 7 8 9 10 11 12 13 14 1516 17 18 20 21 27 28 30 31 34 3536 38 39 40 41 42 43 44 46 48 4950 53 58 59 60 62
以下是一个可能的解决方案:
#include <iostream>
#include <set>
#include <random>
int main() {
std::set<int> numbers;
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<int> dis(1, 100);
// 生成100个随机整数并插入到set中
while (numbers.size() < 100) {
int num = dis(gen);
numbers.insert(num);
}
// 输出排序后的数字
for (int num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
这个程序首先创建了一个空的std::set<int>来保存随机整数。然后,使用std::random_device来生成一个随机数种子,并使用std::mt19937来生成随机数引擎。接下来,使用std::uniform_int_distribution来生成1到100之间的随机整数。然后,使用一个循环来生成100个随机整数,并将它们插入到set中。由于set的性质,它会自动去重并进行排序。最后,使用一个循环来输出排序后的数字
原文地址: https://www.cveoy.top/t/topic/h2qg 著作权归作者所有。请勿转载和采集!