返回随机值1或0的函数

时间:2016-10-25 20:55:19

标签: c

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的随机值。我的代码一直返回固定值,即使我使用随机生成器作为种子,为什么??

1 个答案:

答案 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 指出的那样,您可以尝试取更高阶位,这可能会更好地分配。