gpt4 book ai didi

c - 多次调用函数内 rand 时的相同数字,C

转载 作者:行者123 更新时间:2023-11-30 20:06:16 25 4
gpt4 key购买 nike

我有一个函数可以获取从函数roll_dice返回的随机数,但是当我调用它agian时这似乎是一个问题,它给了我相同的数字,不知何故,当调用agian时它没有给出新的种子。

int roll_dice(void){
int random_dice_numbers[2];
int i = 0;
int sum = 0;
srand(time(NULL));

for(i = 0; i < 2; i++){
random_dice_numbers[i] = rand() % 6+1;


}

sum = random_dice_numbers[0] + random_dice_numbers[1];
return sum;

}

int main(void){
int sum = 0;

sum = roll_dice();
printf("You rolled", sum);

sum = roll_dice();
printf("You rolled", sum);

return 0;
}

最佳答案

time(NULL) 返回秒数,并且您的函数非常快,因此您可能在两次运行中使用相同的数字进行播种。

您应该只为随机数生成器播种一次。

关于c - 多次调用函数内 rand 时的相同数字,C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25940883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com