C言語のじゃんけんプログラムで質問です。
C言語のじゃんけんプログラムで質問です。 練習6という問題で「printf("あなた %d わたし %d\n", player, com);」のコードは,お互いの出し手に対応する番号が表示されますが,何を出したのか分かりづらいです.if 文を使って,"あなた グー わたし チョキ" のように表示されるようにしなさい.という課題が出されたのですが、このコードをどのように変えればいいのですか? なお、条件としてif文以外は、だめだそうです。 #include<stdio.h> #include<stdlib.h> // 乱数を発生させるために必要 #include<time.h> // 日付・時刻に関する関数を利用するのに必要 #include<conio.h> // getch 関数を利用するのに必要 int main() { int com, player; // コンピュータの出し手を記憶する変数 int win_c = 0, win_p = 0; // 勝ち数を記憶する変数 srand((unsigned int)time(NULL)); // 乱数の初期化 while (1) // 無限ループ開始 { printf("ジャンケン"); // ① 表示 com = rand() % 3; //[練習1] 0=グー, 1=チョキ, 2=パー,の乱数を生成 // ② 乱数生成 player = getch() - 0x30; // ③ 1文字キー入力+文字コードを数値に変換 printf("ポン!\n"); // ④ 表示 printf("あなた %d わたし %d\n", player, com); // 練習6 // ⑤ 勝敗判定 if ((com == 0 && player == 1) || (com == 1 && player == 2) || (com == 2 && player == 0)) { printf("わーい!ぼくの勝ち\n\n"); //[練習3] コンピュータの勝ち数を1増やす win_c++; } else if ((com == 1 && player == 0) || (com == 2&& player == 1) || (com == 0 && player == 2)){ //[練習2] プレイヤーが勝った時の条件式 printf("つよいな...あなたの勝ち\n\n"); //[練習3] プレイヤーの勝ち数を1増やす win_p++; } else { printf("あいこだ!\n\n"); printf("\nあいこで…"); continue; } printf("ぼく %d勝 あなた %d勝\n\n", win_c, win_p); // ⑥ // ⑦ 2勝した方が勝ち if (win_c == 2) { printf("この勝負!ぼくの勝ち!\n"); break;//[練習5] ここで,脱出 } else if (win_p == 2) { printf("この勝負,あなたの勝ち...\n"); break;//[練習5] ここで,脱出 } } // ⑧
ベストアンサー
(1150277823さん) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if(player==0)printf("あなた グー "); else if(player==1)printf("あなた チョキ "); else printf("あなた パー "); if(com==0)printf("わたし グー\n"); else if(com==1)printf("わたし チョキ\n"); else printf("わたし パー\n"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if 文を使わなくてもいいのなら char *te[]={"グー","チョキ","パー"}; printf("あなた %s わたし %s\n", te[player], te[com]);
質問者からのお礼コメント
ありがとうございます。解決しました。
お礼日時:6/28 13:27