0

私は小さなサイコロを振るプログラムを書きました。このプログラムは、いくつのサイコロを振っても結果を出力します。それぞれの数値がどれだけ発生するかを数えたいので、rand() 関数からの出力を配列に入れ、その配列でさまざまな値を検索すると考えました。手動で入力されていない配列に数字を入れる方法がわかりません。

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

    int main(void)
    {
        int count; 
        int roll;  

        srand(time(NULL));

       printf("How many dice are being rolled?\n");
       scanf("%d", &count);

       printf("\nDice Rolls\n");
       for (roll = 0; roll < count; roll++)
       {
         printf("%d\n", rand() % 6 + 1);
       }
       return 0;
      }
4

3 に答える 3

0

各結果の発生回数を追跡したい場合は、サイコロを振るたびに保存する必要さえありません。

int result[6] = {} ; // Initialize array of 6 int elements
int current = 0; // holds current random number
for (roll = 0; roll < count
{
     current = rand() % 6;
     result[current]++; // adds one to result[n] of the current random number
     printf("%d\n", current+1);
}

その後、配列 0-5 (結果) が得られ、各要素には各出現回数が含まれます (実際のロールを取得するには、要素番号 + 1 を追加する必要があります)。すなわち。result[0] は「1」の出現回数です。

于 2013-04-25T15:59:36.357 に答える