2015-11-15 62 views
2

我需要編寫一個程序來模擬兩個骰子的滾動和存儲在數組中它們的總和。給出總和= 2的頻率應該是最小的,總和的頻率= 7是最大的。 這是我寫的代碼。我需要2和12之間的隨機數與所述頻率如何設置蘭特()functon的結果的頻率在C

#include <stdio.h> 
#include <stdlib.h> 
#include<time.h> 

int main() 
{ 
    int i, n; 


    n = 5; 
      srand (time(NULL)); 


    for(i = 0 ; i < n ; i++) 
    { 

     printf("%d\n", rand() % 12); 
    } 

    return(0); 
} 
+0

只需調用rand()%6 + 1兩次並求和結果會不會更容易?你會用更簡單的數學模擬完全相同的行爲。 –

回答

2

呼叫rand()以生成每個36對的數目,然後返回的總和。

int dice2sum(void) { 
    int r = rand()%36; 
    int die1 = r%6 + 1; 
    int die2 = r/6 + 1; 
    return die1 + die2; 
}