[英]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.