函数调用C中的循环内部

时间:2015-04-20 17:43:31

标签: c

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设置一个新值?

1 个答案:

答案 0 :(得分:7)

在致电srand()之前,您不应每次都致电rand()

您调用srand()的方式始终传递与种子相同的值,因为每次调用之间的差异为0,因为它是&#39; sa小于1s

由于您始终使用相同的种子呼叫srand(),并且在rand()之前,rand()将始终使用相同的值

只需在程序开始时调用srand()一次,因此在每次运行时都会生成不同的随机数。