我试图在每次循环发生时创建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;
}
Run Code Online (Sandbox Code Playgroud)
您只需要为随机数生成器播种一次.
因此,在随机函数之外运行此行:
srand(time(NULL));
Run Code Online (Sandbox Code Playgroud)
..在你的主要功能中:
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;
}
Run Code Online (Sandbox Code Playgroud)