在C++中生成随机20个非重复数,可以使用以下方法:
下面是一个示例代码:
#include <iostream>
#include <cstdlib>
#include <ctime>
int main() {
const int MAX_NUM = 100; // 生成的随机数的范围为0到99
const int NUM_COUNT = 20; // 需要生成的非重复数的个数
int numbers[NUM_COUNT]; // 存储生成的非重复数
int count = 0; // 当前已生成的非重复数的个数
// 设置随机数种子
std::srand(std::time(0));
while (count < NUM_COUNT) {
int num = std::rand() % MAX_NUM; // 生成一个随机数
// 检查数组中是否已经存在该数
bool isDuplicate = false;
for (int i = 0; i < count; i++) {
if (numbers[i] == num) {
isDuplicate = true;
break;
}
}
// 如果不存在,则将该数添加到数组中
if (!isDuplicate) {
numbers[count] = num;
count++;
}
}
// 输出生成的非重复数
for (int i = 0; i < NUM_COUNT; i++) {
std::cout << numbers[i] << " ";
}
std::cout << std::endl;
return 0;
}
这段代码使用了rand()函数生成随机数,并通过循环和数组来确保生成的数是非重复的。其中,MAX_NUM表示生成的随机数的范围,NUM_COUNT表示需要生成的非重复数的个数。代码中使用了一个布尔变量isDuplicate来标记是否存在重复数,如果不存在,则将该数添加到数组中。最后,通过循环输出生成的非重复数。
请注意,这只是一个示例代码,实际应用中可能需要根据具体需求进行修改和优化。
领取专属 10元无门槛券
手把手带您无忧上云