• ベストアンサー

if文がコンパイルエラーを起こしてしまう…

C言語の初心者です。 まだ始めて間もない中学生なのですが、タイトル通り、以下のようなif文をコンパイルすると、コンパイルエラーを起こしてしまいます。 何度も、やり直したのですが、どうしてもエラーが出ます。 何方か、「文が変だなぁ」とお気づきなさった方は、回答を頂けると、幸いです。 どうぞよろしくお願い致します。 とりあえず、本に習って、下の文を作成しました。 #include <stdio.h> main() {    int year; year = 14; /* 数字のところにあなたの年齢を入れてください。 */    if (year < 20)     {      printf("あなたはまだ、20を過ぎていないので、お酒は飲めません。\n");     }      else     {      printf("あなたは成人なので、楽しくお酒を飲むことが出来ます。\n");     }      if (year == 20)     {      printf("あなたは、今年成人式ですね。\n");     }      if (year >= 18 )     {      printf("あなたは結婚が出来る年齢ですね。\n");     } }

質問者が選んだベストアンサー

  • ベストアンサー
  • t_nojiri
  • ベストアンサー率28% (595/2071)
回答No.6

ごめんなさい。コンパイラが出したのは、 otnさんの回答が正解です。 ただし、jumpman_723さんの出されてる点も直さないと コンパイル通りません。 #私が、見落としてしまった。

hiro_wide
質問者

お礼

回答どうもありがとうございます。 あ~間違いだらけです…^^; 皆さんの意見を参考に、修正を入れたいと思います。

その他の回答 (6)

回答No.7

s73.c:32; parse error berore "!" って、 before "!"では? 「!=」の間にスペースが入っていませんか?

hiro_wide
質問者

お礼

アドバイスありがとうございます。 すみません。 打ち間違いです。 このような、ミスが駄目なんでしょうか…

  • t_nojiri
  • ベストアンサー率28% (595/2071)
回答No.5

一番最後の >printf("条件に当てはまりませんでした。\n") の最後のセミコロン抜け。 この為に、elseの最後のカッコがコンパイラに 認識されてません。 s73.c:32; parse error berore "!" をちゃんと見れば追える筈ですよ。

回答No.4

No.2です。 一番最後のprintf文の最後にセミコロンはありますか?

hiro_wide
質問者

お礼

その通りでした^^; まだまだ、未熟なので、またお会いする機会が有りましたら、宜しくお願いします。

  • otn
  • ベストアンサー率66% (14/21)
回答No.3

if(a == 20 || b == 30 || a ! = 10) の a ! = 10 の!が全角になっていますが半角の!を使ってください。

hiro_wide
質問者

お礼

回答ありがとうございます。 早速試させて頂きたいと思います。

回答No.2

全角のスペースが無いかチェックしてください。 year=14; としているので、 あなたはまだ、20を過ぎていないので、お酒は飲めません。 と出ます。

hiro_wide
質問者

お礼

其方の、プログラムは、問題なく直りました。 回答ありがとうございました。

回答No.1

「エラーが出る」だけでは分かりません。 どのようなエラーメッセージが出ているのかも書いてください。

hiro_wide
質問者

補足

すみません… 別の、C文を張ってしまいました。 正しくは、また下に張りました。 使っている、コンパイラは、cygwinです。 ファイル名はs73.cにしてあります。 s73.c: In function "main": s73.c:32; parse error berore "!" 以上です。 C文は、 #include <stdio.h> main() {    int a;    int b;    a = 10;    b = 20;    printf("aは、%d bは %d です。\n", a,b );    printf("aが10でかつbは20");     if( a == 10 && b == 20 )     {      printf("上記条件に当てはまりました。\n");     }     else     {      printf("上記条件に当てはまりませんでした。\n");     }      printf("aが10かbが30\n");      if( a == 10 || b == 30 )     {      printf("上記条件に当てはまりました。\n");     }      else     {      printf("条件に当てはまりませんでした。\n");     } printf("aが20または、bが30または、aが10以外\n"); if(a == 20 || b == 30 || a ! = 10)     {      printf("上記条件に当てはまりました。");     }      else     { printf("条件に当てはまりませんでした。\n")     } }