- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語について。初心者です。)
C言語で正の偶数を表示するプログラムの作成方法
このQ&Aのポイント
- C言語で整数値以下である正の偶数を照準に表示するプログラムを作成する方法について
- 提供されたプログラムでは正しく動作しないため、どう変更すれば正しい結果が得られるかを解説
- while文を使用して条件に合致する正の偶数を表示する方法について
- みんなの回答 (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; ・・・これだと最後の偶数表示の後にもスペースが付くので気持ち悪いです。 たぶんこの後に良い回答が付くでしょう。
その他の回答 (2)
- haihaihaih
- ベストアンサー率16% (1/6)
回答No.2
nbは永遠に0ですよ。nbの値が更新されていないから 2+0がwhileで無限に表示されてるだけ あとprintfだけしかループしてないからwhileするなら{}使ったほうがいいですよ
質問者
お礼
参考になりました。 ありがとうございます。
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
そのような表示になる原因を考えてください.
お礼
とても参考になりました。 ありがとうございます。