• ベストアンサー

if文ができません・・・。

文字を入力してその入力された文字が 「 A 」 だったら 「 当たり 」 と表示させるプログラムを作りたいのですができません。「 A 」 以外を入力しても 「 当たり 」 と表示されてしまいます。下記のプログラムで正しいと思うのですがどこが間違っているのでしょうか? #include <stdio.h> void main (void) { int mozi ; scanf ("%c",&mozi); if (mozi=='A'); printf("当たり"); }

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

  • ベストアンサー
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.2

if (mozi=='A'); の最後のセミコロンが必要ありません。 恐らくこれでは何を入力しても「当たり」と表示してしまいます。 また、int mozi ;ですが、char型にした方が良いでしょう。 ご確認下さい。

kazu2021
質問者

お礼

ありがとうございました。

その他の回答 (2)

  • Traja
  • ベストアンサー率19% (107/546)
回答No.3

どうして、文字の入れ物がintなのでしょうか? ifの比較ですが、もしその様に比較したいならば、文字を比較するのではなく 文字コードを比較しないといけないのではないでしょうか? 単純に比較すると、変数アドレスの比較になってしまいませんか?

kazu2021
質問者

お礼

ありがとうございました。

  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

int mozi ; は、 char mozi; でないですか?

kazu2021
質問者

お礼

ありがとうございました。

関連するQ&A

専門家に質問してみよう