【发布时间】:2022-01-19 01:45:32
【问题描述】:
我想生成两个随机数组 不管我怎么尝试,但这两张表总是相同的
double *init_rand_w(double tableau[],int tailleTableau) {
//double *tableau=malloc(tailleTableau*sizeof(double));
srand(time(NULL));
for (int i = 0 ; i < tailleTableau ; i++)
{
tableau[i]=((double)rand())/((double)RAND_MAX);
}
return tableau;
}
int main()
{
double *t1=(double*)malloc(sizeof(double)*10);
double *t2=(double*)malloc(sizeof(double)*10);
t1=init_rand_w(t1,5);
t2=init_rand_w(t2,5);
shuffle(t2,5);
printf("***************************\n");
for (int x = 0; x <5; x++)
{
printf("%f , %f \n", t1[x],t2[x]);
}
}
【问题讨论】:
-
不要给
srand打两次电话。您的循环运行速度肯定足够快,以至于您对srand的两次调用发生在同一秒内,因此time()返回相同的值。 -
在程序开始时调用
srand(time(NULL));一次。 -
谢谢你们,它有效