質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
C

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

Q&A

3回答

1599閲覧

①expected`;`before`:`token②stray‘/347‘in programに関して質問

benefit2025

総合スコア3

C

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

0グッド

0クリップ

投稿2020/06/24 11:06

編集2020/06/24 11:40

じゃんけんゲームじゃのプログラムのコードです。
下記の内容で作成しましたが、
expected;before:token②stray‘/347‘in programのエーラが多数発生しました。
何回も書き直してもエーラが発生します!
理由を教えていただけますでしょうか。

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

int main(void)
{
int player, CUP, continue_game=1;
srand(time(NULL));

printf("\n=== じゃんけん大会 スタート! ===");

while(continue_game)
{
//***「あいこの無限ループ」ブロックここから ***
while(1)
{
printf("\n\n1,2,3のどれかで選んでください");
printf("\n=================================\n");
printf("グー:1 チョキ:2 パー:3");
printf("\n=================================\n");

// YOUの手 scanf("%d", &player); printf("\n YOUの手は "); switch(player){

1: printf("[グー] \n"); break;
2: printf("[チョキ]\n"); break;
3: printf("[パー] \n"); break;
: printf("1,2,3のどれかを選んでください\n\n"); continue;
}

// CPU CUP=rand()%3+1; printf("CUPの手は "); switch(CUP){ 1: printf("[グー] \n"); break; 2: printf("[チョキ]\n"); break; 3: printf("[パー] \n"); break; } // あいこの判定 if(player==CUP) printf("\nあいこです\n\n"); else continue_game ; ;

}
//***「あいこの場合の無限ループ」ブロックここまで ***

// 勝敗判定
if(player%3==CUP-1) printf("\n YOUの勝利\n\n");
else printf("\n CUPの勝利\n\n");

// ゲーム継続/終了の確認
printf("ゲームを続けますか?(つづける:1 終了:0): ");
scanf("%d", &continue_game);
}

printf("ゲーム終了\n");
return 0;
}

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

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

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

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

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

cateye

2020/06/24 12:11

<code>で出てくる```と```の間にソースを貼り付けて下さい。 全角が含まれているようですが、このままでは検証できません。
benefit2025

2020/06/24 12:14

例えば、 下記のコードで下記の通りにエラーが出ております。 ①~③、④~⑦expected`;`before`:`token ④expected expression before‘:‘token 書き直してもエラー発生しております。 理由をご存知でしょうか =================== // YOUの手 scanf("%d", &player); printf("\n YOUの手は "); switch(player){ ①1: printf("[グー] \n"); break; ②2: printf("[チョキ]\n"); break; ③3: printf("[パー] \n"); break; ④: printf("1,2,3のどれかを選んでください\n\n"); continue; } // CPU CUP=rand()%3+1; printf("CUPの手は "); switch(CUP){ ⑤1: printf("[グー] \n"); break; ⑥2: printf("[チョキ]\n"); break; ⑦3: printf("[パー] \n"); break; }
cateye

2020/06/24 12:25

定数にcaseがないからです。 case 1: case 2: ・・・
thkana

2020/06/24 13:08

何回書き直しても、正しくなければエラーがでます。 コンピュータは、あなたが頑張っていれば間違っていても認めてくれる...ようなことはしません。 正しいプログラムに修正する以外にエラーをなくす方法はありません。
guest

回答3

0

C言語ならば、
switch()文では飛び先のラベルは
case 定数式 :
あるいは
default :
です。caseやdefaultは略せません。


stray‘/347‘in program

いわゆる「全角」文字(日本語モードで入力される文字)が紛れ込んでいると思われます。

折角エラーメッセージに「どこでエラーになった」という情報が付いているのですから、エラーメッセージは略さずそのまま掲載してください。

投稿2020/06/24 11:22

thkana

総合スコア7629

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

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

benefit2025

2020/06/24 11:46

switch()文では 作成する際Caseではなく、 例えば、ひらがなや数字など自分が分かりやすいものに記載してもOKでしょうか
maisumakun

2020/06/24 11:53 編集

(マクロ置き換えで無理やり通すのでもなければ)caseはそのとおりの文字列でソースコードに書くしかありません(大文字にしたCaseでも通りません)。
benefit2025

2020/06/24 12:52

// あいこの判定 if(player==CUP) printf("\nあいこです\n\n"); else continue_game ; ; ↑ elseには問題ないでしょうか
maisumakun

2020/06/24 12:54

文法的に問題はありませんが、「変数名;」は何の効果も持ちません。
guest

0

コード書き直しました。

C

1#include <stdio.h> 2#include <stdlib.h> 3#include <time.h> 4 5int main(void) 6{ 7 int player, CUP, continue_game=1; 8 srand(time(NULL)); 9 10 printf("\n=== じゃんけん大会 スタート! ==="); 11 12 while(continue_game) 13 { 14 //***「あいこの無限ループ」ブロックここから *** 15 while(1) 16 { 17 printf("\n\n1,2,3のどれかで選んでください"); 18 printf("\n=================================\n"); 19 printf("グー:1 チョキ:2 パー:3"); 20 printf("\n=================================\n"); 21 22 // YOUの手 23 scanf("%d", &player); 24 printf("\n YOUの手は "); 25 switch(player) 26 { 27 case 1: 28 printf("[グー] \n"); 29 break; 30 case 2: 31 printf("[チョキ]\n"); 32 break; 33 case 3: 34 printf("[パー] \n"); 35 break; 36 default: 37 printf("1,2,3のどれかを選んでください\n\n"); 38 continue; 39 } 40 41 // CPU 42 CUP=rand()%3+1; 43 printf("CUPの手は "); 44 switch(CUP) 45 { 46 case 1: 47 printf("[グー] \n"); 48 break; 49 case 2: 50 printf("[チョキ]\n"); 51 break; 52 case 3: 53 printf("[パー] \n"); 54 break; 55 } 56 57 // あいこの判定 58 if (player==CUP) printf("\nあいこです\n\n"); 59 else break; // 無限ループを抜ける 60 } 61 //***「あいこの場合の無限ループ」ブロックここまで *** 62 63 // 勝敗判定 64 if ((3 + player - CUP) % 3 == 2) printf("\n YOUの勝利\n\n"); 65 else printf("\n CUPの勝利\n\n"); 66 67 // ゲーム継続/終了の確認 68 printf("ゲームを続けますか?(つづける:1 終了:0): "); 69 scanf("%d", &continue_game); 70 } 71 72 printf("ゲーム終了\n"); 73 return 0; 74} 75

投稿2020/06/24 13:20

編集2020/07/05 04:05
anndonut

総合スコア667

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

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

0

  • switchcasedefaultが書かれていません。
  • switch( く )は何をしようとしたのでしょうか。

投稿2020/06/24 11:22

maisumakun

総合スコア145183

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

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

benefit2025

2020/06/24 11:49

switch( く )にはswitch(player)と記載するつもりでした!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問