我在主要函数中使用srand(time(NULL)),但无法生成两个随机数组。
我编写了一个函数,该函数将生成一个包含不同数字的随机数组。我的目标是生成介于1和数组大小之间的数字。但是当我两次调用此函数时,我得到的数组完全相同。
void randomArray(int *array,int size){
srand(time(NULL));
int i=0;
int j=0;
int randNumber;
int test;
while(i<size){
test=0;
while(test==0){
test=1;
j=0;
randNumber=(rand()%(size))+1;
while (j<i){
if(array[j]==randNumber){
test=0;
}
j++;
}
}
array[i]=randNumber;
i++;
}
}
示例输出;
Array1:13 18 2 4 15 9 14 7 16 17 20 19 6 10 1 8 3 5 12 11
Array2:13 18 2 4 15 9 14 7 16 17 20 19 6 10 1 8 3 5 12 11
我对此进行了一些研究,并了解了它的原因,因为srand(time(NULL))使用时间生成随机数,因此我得到了相同的数组。我认为我可以在它们之间放置延迟,但是那不是好的解决方案,因为我需要为不同的结果设置大约半秒的延迟。还有其他方法吗?