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

#define SIDES 6  // サイコロの面の数

int saikoro(void) {
    return (rand() % SIDES) + 1;  // 1から6の間の数を返す
}

int main(void) {
    int i, roll1, roll2;
    int histogram[2 * SIDES + 1];  // 和は2から12までの範囲

    // ヒストグラムの初期化
    for (i = 0; i <= 2 * SIDES; i++) {
        histogram[i] = 0;
    }

    // 乱数生成器のシードを設定
    srand(time(NULL));

    // サイコロを10万回振る
    for (i = 0; i < 100000; i++) {
        roll1 = saikoro();  // 1つ目のサイコロ
        roll2 = saikoro();  // 2つ目のサイコロ
        int sum = roll1 + roll2;  // 和を計算
        histogram[sum]++;  // 和の出現回数をカウント
    }

    // 結果を表示
    printf("和\t頻度\n");
    for (i = 2; i <= 12; i++) {
        printf("%d\t%d\n", i, histogram[i]);
    }

    return 0;
}
