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

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

詳細はこちら
C

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

Q&A

3回答

2798閲覧

c言語のジャンケンプログラムで、エラーが出ます。

rinrin200011

総合スコア8

C

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

0グッド

0クリップ

投稿2020/12/10 11:20

C言語で、じゃんけんで、人とコンピュータが対戦し、どちらかが5回勝つというプログラムを作っているのですが、prog.c: In function ‘main’:
prog.c:62:1: error: expected declaration or statement at end of input
}
^
というエラーが出ます。どこを直せばいいんでしょうか。。。

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

/* ジャンケンゲーム(繰り返しなし)*/
int main() {
int player = 0, computer;

printf(" 【ジャンケンゲーム】 \n"); // 乱数の種をまく srand(time(NULL)); int win=0;//勝った回数 int lose=0;//負けた回数 while(win<5 &&lose<5){//5回勝つかまけるまでループ // プレイヤーが手を入力 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"); win++; } else { printf("コンピュータの勝ち \n"); lose++; } } else if(player == 2) { if(computer == 3) { printf("プレイヤーの勝ち \n"); win++; } else { printf("コンピュータの勝ち \n"); lose++; } } else if(player == 3) { if(computer == 1){ printf("プレイヤーの勝ち \n"); win++; } else { printf("コンピュータの勝ち \n"); lose++; } printf("%d勝%d敗\n",win,lose); } return 0;

}

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

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

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

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

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

guest

回答3

0

VScodeでこぴぺして、オートフォーマット掛けてみました。
main関数を閉じるカッコがありませんね

C

1#include <stdio.h> 2#include <time.h> 3#include <stdlib.h> 4 5/* ジャンケンゲーム(繰り返しなし)*/ 6int main() 7{ 8 int player = 0, computer; 9 10 printf(" 【ジャンケンゲーム】 \n"); 11 // 乱数の種をまく 12 srand(time(NULL)); 13 int win = 0; //勝った回数 14 int lose = 0; //負けた回数 15 while (win < 5 && lose < 5) 16 { //5回勝つかまけるまでループ 17 18 // プレイヤーが手を入力 19 printf("ジャンケン・・・(グー:1 チョキ:2 パー:3を入力) > "); 20 scanf("%d", &player); 21 22 // コンピュータが手を出す 23 computer = rand() % 3 + 1; 24 printf("コンピュータは "); 25 if (computer == 1) 26 { 27 printf("グー"); 28 } 29 else if (computer == 2) 30 { 31 printf("チョキ"); 32 } 33 else 34 { 35 printf("パー"); 36 } 37 printf(" ! \n"); 38 39 // 勝敗の判定と結果表示 40 if (computer == player) 41 { 42 printf("あいこ \n"); 43 } 44 else if (player == 1) 45 { 46 if (computer == 2) 47 { 48 printf("プレイヤーの勝ち \n"); 49 win++; 50 } 51 else 52 { 53 printf("コンピュータの勝ち \n"); 54 lose++; 55 } 56 } 57 else if (player == 2) 58 { 59 if (computer == 3) 60 { 61 printf("プレイヤーの勝ち \n"); 62 win++; 63 } 64 else 65 { 66 printf("コンピュータの勝ち \n"); 67 lose++; 68 } 69 } 70 else if (player == 3) 71 { 72 if (computer == 1) 73 { 74 printf("プレイヤーの勝ち \n"); 75 win++; 76 } 77 else 78 { 79 printf("コンピュータの勝ち \n"); 80 lose++; 81 } 82 printf("%d勝%d敗\n", win, lose); 83 } 84 85 return 0; 86 }

投稿2020/12/10 11:45

y_waiwai

総合スコア88038

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

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

0

中カッコ {} の組合せが合ってますか?
一つ足りないように見えます。

投稿2020/12/10 11:29

pepperleaf

総合スコア6385

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

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

pepperleaf

2020/12/10 11:33

最近のエディタ、統合環境では、対応関係を見てくれますが、そういう機能は使ってない? また、インデントが適切ならば、それでも分かります。 また、エラーメッセージ検索しても出てきますね。
guest

0

{が15個
}が14個で数が合ってません

投稿2020/12/10 11:28

ozwk

総合スコア13551

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問