#include #include #include #include /*** プロトタイプ宣言 ***/ int random(int, int); /*** Main部 ***/ int main(){ int n; /* 扉の数 */ int c; /* 試行回数 */ int i; /* 実行回数 */ int flag; /* 扉を変えるかどうかの判定 */ int p_ans; /* プレイヤーが答えた番号 */ int c_ans1; /* 答えの番号 */ srand((unsigned int)time(NULL)); do{ printf("扉の数を指定してください:"); scanf("%d",&n); }while(n <= 1); /* 扉1つ以下は不可 */ do{ printf("何回実行しますか?:"); scanf("%d",&c); }while( c < 0 ); do{ printf("扉は変更しますか?\n"); printf("変更する場合は1を、しない場合は0を入力してください:"); scanf("%d",&flag); }while( flag < 0 || flag > 1); for(i = 0; i < c; i++){ p_ans = random(1,n); c_ans1 = random(1,n); if(p_ans == c_ans1){ /* 最初の扉が正解だった場合 */ printf("選んだ扉:%3d ",p_ans); printf("正解の扉:%3d ",c_ans1); if(flag == 1){ printf("残念!\n"); }else{ printf("お見事!\n"); } }else{ /* 最初の扉がハズレだった場合 */ printf("選んだ扉:%3d ",p_ans); printf("正解の扉:%3d ",c_ans1); if(flag == 1){ printf("お見事!\n"); }else{ printf("残念!\n"); } } } return 0; } /*** 関数:random 引数:なし 返り値:int 機能:ランダムに整数を返す ***/ int random(int min, int max) { return min + (int)( rand() * (max - min + 1.0) / (1.0 + RAND_MAX)); /* ランダムな値を作成し返す */ }