如何在两个不同的数组中生成随机数?(C ++)

时间:2016-03-28 09:07:46

标签: c++ arrays random

我试图在两个不同的数组中生成不同的数字,并且由于某种原因,两个数组中的数字是相同的。

这是我的代码:

#define SIZE 5

void main(){

int* num1;
int* num2;

num1 = new int[SIZE];
num2 = new int[SIZE];

random(num1);
random(num2);
int i;
for (i = 0; i < SIZE; i++)
    cout << num1[i];

cout << endl;

for (i = 0; i < SIZE; i++)
    cout << num2[i];}

和随机函数:

void random(int* num){

int i;

time_t t;
srand((unsigned)time(&t));

for (i = 0; i < SIZE; i++ )
    num[i] = (rand() % MAX + 1);}

输出始终与两个数组中的5位数字相同 (例如,数组1将是29384,数组2也是29384)

任何想法我该如何解决?

感谢。

3 个答案:

答案 0 :(得分:2)

在开始使用srand之前,您应该只调用rand一次。

现在,代码运行得如此之快,以至于您获得两次调用的相同时间值。

答案 1 :(得分:2)

由于程序运行如此之快,这一行

srand((unsigned)time(&t));

可能会看到具有相同值的随机数生成器。

int main()之后将此行放在开头(使用void时出错)

答案 2 :(得分:1)

  

函数srand((无符号)的时间(&amp; T公司));

您应将此来电移至main