同一个函数多次调用函数内的数字,C

同一个函数多次调用函数内的数字,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)回报秒,你的功能是非常快,所以你可能在这两个运行相同数量的种子。

你只应该给你的随机数发生器播种一次。

+0

是的,这是问题,把它改为main。像魅力一样工作 – Nicco 2014-09-19 19:19:03

+1

感谢的最佳方式是接受帮助的答案。 :) – Surya 2014-09-19 19:23:28