相关疑难解决方法(0)

调用rand()返回非随机结果

我正在编写一个简单的C程序,它将硬币投掷100000次并计算使用srand和rand投掷多少个头和多少尾巴.这是我有的:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void){

    int i;
    int h=0;
    int t=0;
    int n;

    for(i=0;i<100000;i++){
        srand(time(NULL));
        n=rand()%2;
        if(n==0){
            h++;
        }
        else {   
            t++;
        }
    }

    printf("%d heads\n", h);
    printf("%d tails\n", t);

    return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

然而,在运行程序时,我有时会获得100000个头和0个尾部,有时会有0个头和100000个尾部,有时我会在头部和尾部得到随机数,但不会有任何50%的头部50%尾部.

我错过了什么吗?谢谢!

c

2
推荐指数
1
解决办法
313
查看次数

标签 统计

c ×1