int random(){//function for random number generation
time_t t;
srand((unsigned) time(&t));
int rand = rand()%468;
return rand;
}
我想把这个函数放在一个循环中,所以它在循环的每次迭代期间为变量分配一个随机数,所以我想我会试试这个:
for(x=0;x<n;x++){
y=random();
printf("%d\n",y);
}
然而,这不能像我预期的那样工作,你只是从第一次迭代中得到数字并重复它,有人可以解释我如何强制召唤函数,以便为y设置一个新值?
答案 0 :(得分:7)
在致电srand()
之前,您不应每次都致电rand()
。
您调用srand()
的方式始终传递与种子相同的值,因为每次调用之间秒的差异为0
,因为它是&#39; sa小于1s
。
由于您始终使用相同的种子呼叫srand()
,并且在rand()
之前,,rand()
将始终使用相同的值。
只需在程序开始时调用srand()
一次,因此在每次运行时都会生成不同的随机数。