• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ループが変な動作をする)

ループが変な動作をする

このQ&Aのポイント
  • このプログラムは表示された数値を逆に入力するプログラムです。入力した値の正誤を表示し、3回で終了します。
  • しかし、実際に動作させると間違いを3回入力すると終了してしまいます。
  • 原因はループの中の一部分である可能性があります。

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

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

本題の前に、文字列に関する大きな間違いがあります。 >printf("4桁の数値を記憶しましょう。\n"); 4桁の数字を記憶しておくには、終端の'\0'を含めて5バイト以上の領域が必要です。 したがって、 >char gyaku[4]; >char gyakuho[4]; >char nyuu[4]; これらの定義は、すべて1バイト分不足しています。 それから、 >gyaku[4]='\0'; >gyakuho[4]='\0'; これらは、配列の定義範囲外の領域にアクセスしています。 [4]と定義した配列でアクセスできるのは、[0]~[3]の範囲です。 これらを十分に理解してから本題に入りましょう。

rinnshan
質問者

お礼

回答ありがとうございました。 ご指摘の通りの修正をしたら正常に動作するようになりました。 領域が不正に使われていたために異常をきたしていたのかも しれませんね。

関連するQ&A