2017-01-29 15 views
-5

私は100より小さいすべての値に対してXで始まる(ユーザーが入力する)5番目の整数の合計を計算するプログラムを作成しました。 95から99までの数値を入力しても結果は表示されます。しかし、94を入力すると、100を下回る99が追加され、100を超える結果が表示されず、プログラムはそこで停止します。ここ
は、コードは次のとおりです。結果が100以上の場合、プログラムに結果が表示されませんか?

#include<iostream.h> 
#include<conio.h> 


int main(){ 
clrscr(); 
int x,result=0; 

cout <<"Enter a number below 100\n"; 
cin >>x; 

for(int a=x;a<100;a=x+5){ 
    result=result+a; 
} 

cout<<"\n Result="<<result; 

getch(); 
return 0; 
} 
+7

あなたが正常に 'iostream.h'をインクルードすることができれば、あなたのコンパイラは古代です。できるだけ早くアップグレードしてください。慣用的なC++を書くことは非常に難しいでしょう。 – StoryTeller

+1

また、このコードは移植性がなく、Windowsでのみ動作します。 – tambre

+1

また、 ''は標準のC++ヘッダーではありません。 LinuxやMacOSXシステムでは存在しません。そして、少なくともC++ 11コンパイラ( ''は存在しません)に切り替えてください。 –

答えて

4

あなたが95未満番号を入力する場合は、Xを更新したことがないので、それは無限ループです。あなたがやるべきことは、a += 5でした。代わりに、ループが1回の反復を実行するたびに、より大きい値になるようにaを更新しますが、xは常にユーザーが入力した値なので、何も進歩しません。

+0

ユーザが95以上のxの値を入力した場合(100未満 - つまり95,96,97,98、または99)、ループは1回の繰り返しの後に終了しますが、終了しません。 'x'が99より大きい場合、ループはゼロ回実行されます。そして、ユーザーはもちろん、「100未満」のような命令を無視します(そして「-100」のような値を「100未満」として選択します)。 –

+0

Omg私は馬鹿だと感じます。ありがとうございました! –

+1

いつもやります!次回は、デバッガでコードをステップ実行し、各反復後に 'a'の値を調べてみてください。 – emschorsch

関連する問題