繁体   English   中英

while循环中的随机数[C编程] [重复]

[英]random number in while loop [C programming] [duplicate]

这个问题在这里已有答案:

我试图在每次循环发生时创建2个随机数(0-4和0-10之间),但它总是给出相同的数字。 如果我多次运行程序,它会给出不同的数字,但是while循环总是生成相同的2个数字。 谢谢。

int random(int range){
    int num;
    srand(time(NULL));
    num = rand() % range;
    return num;
}

int main(){

    int cnt = 0;
    int i;  
    int j;
    while (cnt <= 20) {
        i = random(5);
        j = random(10);
        printf("%d\n",i);
        printf("%d\n",j);
        printf("\n");
        cnt += 1;
    }
    return 0;
}

您只需要为随机数生成器播种一次。

因此,在随机函数之外运行此行:

srand(time(NULL));

..在你的主要功能中:

int random(int range){
    int num;
    num = rand() % range;
    return num;
}

int main(){
    int cnt = 0;
    int i;    
    int j;

    // Seed random number generator
    srand(time(NULL));

    while (cnt <= 20){
        i = random(5);
        j = random(10);
        printf("%d\n",i);
        printf("%d\n",j);
        printf("\n");
        cnt += 1;
    }
    return 0;
}

您只需要为随机函数播种一次。 包括time.h库并使用

#include<time.h>
.....
srand(time(NULL));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM