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

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

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

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

Q&A

解決済

2回答

2743閲覧

C言語で書いた状態遷移に関するコードのエラー

退会済みユーザー

退会済みユーザー

総合スコア0

C

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

0グッド

0クリップ

投稿2018/07/08 13:25

編集2018/07/09 03:34

前提・実現したいこと

状態遷移に関するコードを書き、
その実行結果を確認しようとしています。

発生している問題・エラーメッセージ

webブラウザでプログラムを書いて実行できるサイトcoding groundで実行
したところ、エラーが多発してしまい、どこから修正すればいいのかわかりません。

$gcc -o main *.c main.c:2:2: warning: return type defaults to ‘int’ [-Wimplicit-int] main() ^~~~ main.c: In function ‘main’: main.c:3:3: error: stray ‘\343’ in program {  ^ main.c:3:4: error: stray ‘\200’ in program {  ^ main.c:3:5: error: stray ‘\200’ in program {  ^ main.c:4:2: error: stray ‘\343’ in program  int c; ^ main.c:4:3: error: stray ‘\200’ in program  int c; ^ main.c:4:4: error: stray ‘\200’ in program  int c; ^ 以下略

該当のソースコード

C

1#include <stdio.h> 2 main() 3 {  4  int c; 5  while(1){ 6   c = get_c(); 7   while(c == '/'){ 8    c = get_c(); 9    if(c == '*'){ 10     printf("/*"); 11     int done = 0; 12     while(! done){ 13      c = get_c(); 14      printf("%c",c); 15      while(c == '*'){ 16       c = get_c(); 17       printf("%c",c); 18       if(c == '/'){ 19        done = 1; 20        c = get_c(); 21        break; 22 } 23 } 24 } 25 } 26 } 27 } 28 } 29

###ご回答を受けて修正したこと
ご回答をいただいて修正したところ、エラーメッセージの数が大幅に減り、
以下のようになりました。

c

1#include <stdio.h> 2main(){  3int c; 4while(1){ 5c = get_c(); 6while(c == '/'){ 7 c = get_c(); 8 if(c == '*'){ 9 printf("/*"); 10 int done = 0; 11 while(! done){ 12 c = get_c(); 13 printf("%c",c); 14 while(c == '*'){ 15 c = get_c(); 16 printf("%c",c); 17 if(c == '/'){ 18 done = 1; 19 c = get_c() 20 break; 21 } 22 } 23 } 24 } 25 } 26 } 27}

エラーメッセージ

Coding Ground Compile and Execute C Online (GNU GCC v7.1.1) Login Setting Edit Project Fork Result $gcc -o main *.c main.c:2:1: warning: return type defaults to ‘int’ [-Wimplicit-int] main(){  ^~~~ main.c: In function ‘main’: main.c:2:8: error: stray ‘\343’ in program main(){  ^ main.c:2:9: error: stray ‘\200’ in program main(){  ^ main.c:2:10: error: stray ‘\200’ in program main(){  ^ main.c:5:5: warning: implicit declaration of function ‘get_c’; did you mean ‘getc’? [-Wimplicit-function-declaration] c = get_c(); ^~~~~ getc main.c:20:14: error: expected ‘;’ before ‘break’ break; ^~~~~ main.cSTDIN Execute | Embed

ご回答を受けて修正したこと2
以下の結果が出力されました。
状態遷移に関するコードですが、エラーが出なければ正しいということでしょうか。

$gcc -o main *.c $main

補足情報(FW/ツールのバージョンなど)

coding groundで実行

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

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

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

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

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

guest

回答2

0

スペースが全角スペースです。
全角スペースが混じるとエラーが出ます。
全部半角スペースに置き換えてください


main(){ ←全角スペースはいってます

全角スペースが見れるエディタ(サクラエディタなど)を使いましょうよ

投稿2018/07/08 13:54

編集2018/07/09 00:44
y_waiwai

総合スコア87782

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

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

退会済みユーザー

退会済みユーザー

2018/07/09 00:42

ご回答いただきましてありがとうございます。ご回答を受けて修正したことに改善したコードと大幅に少なくなったエラーメッセージを追記させていただきました。可能でしたら、こちらもアドバイスをいただけますと幸いです。
退会済みユーザー

退会済みユーザー

2018/07/09 03:34

追記いただきましてありがとうございます。解決いたしました。
guest

0

ベストアンサー

warning: return type defaults to ‘int’ [-Wimplicit-int]

**グーグル翻訳 ⇒ ** 警告:戻り値の型はデフォルトで 'int'
『戻り値の型が指定されてないけど大丈夫?とりあえずintにしといたよ』という意味です。

error: stray ‘\200’ in program

全角のナニカがまじっているように見えて仕方ないのですが。

質問編集を受けて

warning: return type defaults to ‘int’ [-Wimplicit-int]

戻り値の型の指定がないことに警告が出ているのですから、それを解決してやれば良いです。

error: stray ... in program

何もない中空を矢印が指している時点で、見えないナニカが混じっていると察しましょう。

warning: implicit declaration of function ‘get_c’; did you mean ‘getc’?

代わりにgetchar()を使うと良いでしょう。

error: expected ‘;’ before ‘break’

**グーグル翻訳 ⇒ ** エラー: 'break'の前に ';'が必要です
直前の行に何かが足りないようですね。

全体的に言えること

エラーメッセージを読みましょう。
プログラミング用語が混じるのを除けば、文法的には義務教育の範疇にあります。

どうしても苦手ならグーグル翻訳を使っても構いません。とにかく読むことです。

投稿2018/07/08 13:29

編集2018/07/09 03:14
LouiS0616

総合スコア35660

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

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

退会済みユーザー

退会済みユーザー

2018/07/09 00:42

ご回答いただきましてありがとうございます。ご回答を受けて修正したことに改善したコードと大幅に少なくなったエラーメッセージを追記させていただきました。可能でしたら、こちらもアドバイスをいただけますと幸いです。
退会済みユーザー

退会済みユーザー

2018/07/09 03:34

追記いただきましてありがとうございます。解決いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問