int random_var(void);
int main(void)
{
int i;
for (i = 1; i <= 50; i++)
printf("%d\n", random_var());
return 0;
}
int random_var(void)
{
srand((unsigned) time(NULL));
return rand() % 2;
}
我的任务是编写一个函数,每次调用它时都会返回1或0的随机值。我的代码一直返回固定值,即使我使用随机生成器作为种子,为什么??
答案 0 :(得分:1)
您只需拨打srand()
一次!
int random_var(void);
int main(void)
{
int i;
srand((unsigned) time(NULL));
for (i = 1; i <= 50; i++)
printf("%d\n", random_var());
return 0;
}
int random_var(void)
{
return rand() % 2;
}
另外(或另外),正如 Keith Thompson 指出的那样,您可以尝试取更高阶位,这可能会更好地分配。