- ベストアンサー
c言語のforの計算で悩んでいます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その条件式が間違っているからです。 if(0 < a && a < 1000) としなければ、どう動くかはコンパイラ次第。
その他の回答 (1)
- aurumnet
- ベストアンサー率43% (51/117)
回答No.2
if(0<a<1000) これで動くかどうかは1さんのおっしゃってるとおりコンパイラ次第となります 動いたとしても 0<a<1000では 0<aが計算され答えが真か偽(1か0)に置き換わるためa<1000ではなく 真か偽(1か0)<1000の計算となり、常に真の値を出すとおもわれます よってif文の中の処理が行われ2000まで表示されます if文を書き換えるとしたら if((0<a) && (a<1000)) となるとおもいます
質問者
お礼
ご丁寧な説明ありがとうございます。 cの書き方に慣れていないのでもっと勉強します
お礼
ただの勉強不足でした。ありがとうございます