質問: c言語でfor文からbreak を使って抜けたいです。 文字を入力したら抜けるというようにしたいのですが bを押すと 一番初めに入力した数字以外は表示されなくなってしまいます。
回答: 独学なりに頑張ってるね。 結果を画面に出すためのループ(後半の方)があるよね? この中にも前半と同じく、 if (moji == 'b') break; が入ってるよね? 最初のループを抜けるときにmojiに設定された'b'は、後半ループでも中身は入ったままなので、この判定のせいで後半ループをすぐに抜けちゃってるね。 直し方として、後半ループ内の上記判定行は削除することと、後半ループの回る回数は、前半ループで回した数分だけにとどめたいから、カウンタ用に変数を1個追加して、前半ループで回った回数を保持しておいて、その値を後半ループの上限に利用すれば、無駄に回らなくていいと思うよ。 あえて、言葉で説明してみました。