同一个函数多次调用函数内的数字,C
问题描述:
我有一个函数,可以从函数roll_dice
返回一个随机数,但是当我称它为简单的时候,它给了我相同的数字不知何故,当被称为阿吉安时,它并没有被赋予新的种子。同一个函数多次调用函数内的数字,C
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)
回报秒,你的功能是非常快,所以你可能在这两个运行相同数量的种子。
你只应该给你的随机数发生器播种一次。
是的,这是问题,把它改为main。像魅力一样工作 – Nicco 2014-09-19 19:19:03
感谢的最佳方式是接受帮助的答案。 :) – Surya 2014-09-19 19:23:28