🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

1回答

2961閲覧

C言語のジャンケンプログラム

rinrin200011

総合スコア8

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2020/12/10 09:38

C言語でジャンケンを作りたいのですが、次の機能をつける方法がわからないです。。基盤となるソースコードはできたのですが。。

  • ヒトとコンピュータがジャンケンするゲーム
  • どちらかが5回負げるまで勝負を続ける
  • ヒトはグー/チョキ/パーのいずれかの手を、キーボードから入力する
  • コンピュータはいずれかの手を、ランダムに決める
  • それぞれの出した手を比べて、勝ち/あいこ/負けの判定を行い画面上に表示する
  • 勝負が終わったら、各回の判定結果(あいこ除く)と最終的な勝敗を画面上に表示し、プログラムを終了
  • ソースコードには、「while文もしくはdo〜while文」と「配列」を使用
  • ソースコードにはユーザ定義関数とポインタは使わない

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

int main() {
int player = 0, computer;

printf(" 【ジャンケンゲーム】 \n"); // 乱数の種をまく srand(time(NULL)); // プレイヤーが手を入力 printf("ジャンケン・・・(グー:1 チョキ:2 パー:3を入力) > "); scanf("%d", &player); // コンピュータが手を出す computer = rand()%3 + 1; printf("コンピュータは "); if(computer == 1) { printf("グー"); } else if(computer == 2) { printf("チョキ"); } else { printf("パー"); } printf(" ! \n"); // 勝敗の判定と結果表示 if(computer == player) { printf("あいこ \n"); } else if(player == 1) { if(computer == 2) { printf("プレイヤーの勝ち \n"); } else { printf("コンピュータの勝ち \n"); } } else if(player == 2) { if(computer == 3) { printf("プレイヤーの勝ち \n"); } else { printf("コンピュータの勝ち \n"); } } else if(player == 3) { if(computer == 1) { printf("プレイヤーの勝ち \n"); } else { printf("コンピュータの勝ち \n"); } } return 0;

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

I did my best.

C

1int main(void) 2{ 3 unsigned char Buff[10] = { 0 }; 4 const char H[] = "GCP"; 5 int w=0, n=0; 6 7 srand( time(NULL) ); 8 do 9 { 10 int x, y; 11 printf( "(%d th) input : ", n+1 ); 12 scanf( "%d", &x ); 13 if( x<0 || x>2 )break; //for out-of-range input 14 y = rand() % 3; 15 printf( "%c vs %c -> ", H[x],H[y] ); 16 if( x==y ){ printf( "D\n" ); continue; } 17 Buff[n] = ( y==((x+1)%3) ? (++w,1) : 2 ); 18 printf( "%c\n", "WL"[ Buff[n]-1 ] ); 19 ++n; 20 } 21 while( w<5 && w+5!=n ); 22 23 printf( "\n---\nResult:\n" ); 24 n = 0; 25 while( Buff[n] ) 26 { 27 printf( "(%d th) : %c\n", n+1, "WL"[ Buff[n]-1 ] ); 28 ++n; 29 } 30 printf( (w==5 ? "Win\n" : "Lose\n") ); 31 return 0; 32}

投稿2020/12/14 09:38

fana

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問