我有一个函数来从函数roll_dice
返回一个随机数,但是当我把它称为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;
}
答案 0 :(得分:3)
time(NULL)
返回秒,你的功能非常快,所以你可能在两次运行中播种相同的数字。
你应该只为你的随机数生成器播种一次。