2014-10-28 29 views
0

我已完成整個代碼,用戶可以在兩個骰子total number of rolls中選擇number of sides,並打印出histogram of the values rolled。我不知道如何使每個值的frequency出現在直方圖旁邊的各自的數字。我有我認爲是所有相關的代碼,如果不是,我會增加更多。我瀏覽過這個網站,發現主要是matlab code骰子滾動模擬器 - 直方圖中每個滾動的輸出頻率

case 2: 
    printf("\nEnter number of trials: "); 
    fgets(runinput, sizeof(runinput), stdin); 
    sscanf(runinput,"%d",&n); 
    if (n > nmax){ 
     printf("Your choice of %d has exceeded the max value of trials. Value set to max of %d.",n,nmax); 
     n = nmax; 
     printf("\nRolling dice..."); 
     tried++; 
    } 
    else{ 
     printf("\nRolling dice..."); 
    } 
    for (i=0; i <= s; i++){ 
     a[i] = 0; 
    } 
    for (i=0; i <=n-1 ; i++){ 
     d1 = rand()%s; 
     d2 = rand()%s; 
     result = d1+d2; 
     x = random()%(2*s-1); 
     a[result]++; 
     results[i] = a; 
    } 
    break; 
case 3: 
    if (tried != 0){ 
     printf("\nPrinting histogram...\n"); 
     for (i=0; i <= 2*s-2; i++){ 
      freq = results[i]; 
      printf("%5i| %10i - ", i+2, freq); 
      for (j=0; j < a[i]+2; j++){ 
       while (a[i] > 0){ 
        if (a[i] >= 100){ 
         printf("X"); 
         a[i]=a[i]-100; 
        } 
        else if (a[i]>=10){ 
         printf("x"); 
         a[i]=a[i]-10; 
        } 
        else { 
         printf("*"); 
         a[i]=a[i]-1; 
        } 
        } 
       } 
       printf("\n"); 
      } 
     puts("X = 100, x = 10, * = 1\n"); 
     break; 

所有我想補充的是,其中出現的直方圖每個號碼的頻率,任何幫助和解釋表示讚賞,我只CS239所以我還在學習。先謝謝你!

編輯:我需要什麼代碼來使用數組來計算每個數字的頻率?我有時會發現人們在做類似的事情,但它的編程技術要比我知道如何使用或將會被我的教師接受的程度更高。

回答

0

將所有結果保存在單個數組中,然後遍歷數組。在一天結束時你會得到另一個數組,你也可以遍歷它來打印任何值。

的seccond陣列( $計數器)的
$array = [1, 6, 6, 6, 8, 9, 0,]; 
$counter = []; 

foreach ($array as $value) { 
    $counter[$value] ++; 
} 

print_r($counter); 

每個具有骰子輥的值和$值鍵的具有頻率。

編輯(錯誤的語言): 那麼,我寫了PHP而不是C;對不起:(

你可以嘗試一些接近原來的想法,你可以檢查如何Iterate through a C array,然後只需添加一些你發現重複號碼到一個新的數組,瞧這個職位!

我希望這會有所幫助,再次提醒您如何使用這些語言:P

+0

好吧謝謝。我以前從來沒有使用過$或foreach()函數,但我不完全理解這將如何合併,但我會嘗試 – 2014-10-28 02:23:37

+0

男孩我搞砸了!! :( – Solrac 2014-10-28 03:50:19

+0

哈哈我以爲這看起來很混亂!不用擔心,我很感激你花時間嘗試和幫助初學者。 – 2014-10-28 21:48:18