ページ 11

この文章の意味が分かりません

Posted: 2014年9月02日(火) 22:57
by yu
学校からの課題なのですが、エラーの詳細にこんなものがありました。
「;」が識別子の前に必要です。
else文がifと一致しません。(これが3つある)
「;」がelseの前にありません。 「;」って最後につける文なのに?

この3つが引っかかっています。

Re: この文章の意味が分かりません

Posted: 2014年9月02日(火) 23:14
by うずら
それはだいたいケアレスミス(構文間違い系)ですが、ソースコードを見ないと何とも言えないです。

Re: この文章の意味が分かりません

Posted: 2014年9月03日(水) 01:29
by かずま
prog.c

コード:

int main(void)
{
    int a, b;

    if (a < b)
        a = 1
        b = 2
    else
}
prog.c(7) : error C2146: 構文エラー : ';' が、識別子 'b' の前に必要です。
prog.c(8) : error C2143: 構文エラー : ';' が 'else' の前にありません。
prog.c(8) : error C2181: else 文が if と一致しません。

Re: この文章の意味が分かりません

Posted: 2014年9月03日(水) 17:29
by amehirune
yuさんとかずまさんは同一のお方でしょうか?
名前の方は統一していただければ…。
かずま さんが書きました:prog.c

コード:

int main(void)
{
    int a, b;

    if (a < b)
        a = 1
        b = 2
    else
}
prog.c(7) : error C2146: 構文エラー : ';' が、識別子 'b' の前に必要です。
prog.c(8) : error C2143: 構文エラー : ';' が 'else' の前にありません。
prog.c(8) : error C2181: else 文が if と一致しません。
a=1とb=2の後のセミコロンが抜けています。これが最初の二つのエラーです。
最後のエラーは、おそらくelse文の後に続く命令がないことが原因かと思われます。

ただ、その3つのエラーを直したとしても、まだ致命的なミスがありますね…^^;
このままだと実行しても動作が停止してしまいませんかね?
さて、どこが間違っているでしょう。

Re: この文章の意味が分かりません

Posted: 2014年9月03日(水) 17:39
by box
amehirune さんが書きました:yuさんとかずまさんは同一のお方でしょうか?
まさか…。

元の投稿では
ソースコードがない状態でエラーメッセージ「だけ」提示してあったので、
超ベテランの回答者の方が
そのエラーメッセージが出るであろうコードの例を提示してくださったのです。

Re: この文章の意味が分かりません

Posted: 2014年9月03日(水) 17:44
by Rittai_3D
>amehiruneさん

かずまさんは、エラーをわざと再現しているのだと思います。
質問である「エラーメッセージがわかりません」の返信に「このコードを実行するとこういうエラーが出ます。どこがおかしいでしょう?」と言っているのだと思います(実際には言ってはいませんが)

Re: この文章の意味が分かりません

Posted: 2014年9月03日(水) 17:45
by amehirune
box さんが書きました:
amehirune さんが書きました:yuさんとかずまさんは同一のお方でしょうか?
まさか…。

元の投稿では
ソースコードがない状態でエラーメッセージ「だけ」提示してあったので、
超ベテランの回答者の方が
そのエラーメッセージが出るであろうコードの例を提示してくださったのです。
…お恥ずかしい限りです。申し訳ありません。
削除しようかと思いましたが、ログがかみ合わなくなりそうなので残します。
先ほどのあれは無視してください…(/ω\)ヤメテ―
オフトピック
私はあまり人の名前を覚えられない人なので、ベテランかどうかはポイントで判別しているようなものなのです…

Re: この文章の意味が分かりません

Posted: 2014年9月03日(水) 18:10
by ISLe()
C言語のコンパイルで「前」と言ったら、翻訳単位(≒ソースファイル)で、それより前だということも覚えておいたら良いと思います。