• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語について。初心者です。)

C言語で正の偶数を表示するプログラムの作成方法

このQ&Aのポイント
  • C言語で整数値以下である正の偶数を照準に表示するプログラムを作成する方法について
  • 提供されたプログラムでは正しく動作しないため、どう変更すれば正しい結果が得られるかを解説
  • while文を使用して条件に合致する正の偶数を表示する方法について

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

  • ベストアンサー
  • wild_kit
  • ベストアンサー率32% (581/1804)
回答No.3

 ご質問にある通りだと3つ問題点があります。 1)nbが初め0となっているので、naが1の時に画面に2が表示される。  例で0が表示されないことを考えると、naが1の場合には何も表示しない方がよいのではないか。 2)nb+2ではnbの値は変わらない。  nbの値を変えるためにnb=nb+2とする必要がある。 3)表示する偶数がくっついてしまう。  「2 4 ・・・」のようにスペースを入れる必要があるのではないか。 #include<stdio.h> int main(void) { int na; int nb=2; printf("整数を入力してください。:"); scanf("%d",&na); while(nb<=na){ /*nbが入力した数以下の偶数の間続ける*/ printf("%d ",nb); /*nbとそれに続くスペースを表示*/ nb = nb+2; /*nbを次の偶数に書き換える。*/ } putchar('\n'); return 0; ・・・これだと最後の偶数表示の後にもスペースが付くので気持ち悪いです。 たぶんこの後に良い回答が付くでしょう。

hitosashi
質問者

お礼

とても参考になりました。 ありがとうございます。

その他の回答 (2)

回答No.2

nbは永遠に0ですよ。nbの値が更新されていないから 2+0がwhileで無限に表示されてるだけ あとprintfだけしかループしてないからwhileするなら{}使ったほうがいいですよ

hitosashi
質問者

お礼

参考になりました。 ありがとうございます。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

そのような表示になる原因を考えてください.