2017-01-29 1 views
-5

Also schrieb ich ein Programm, das die Summe jeder fünften Ganzzahl berechnet, beginnend mit X (das der Benutzer eingeben wird) für alle Werte kleiner als 100. Ich gebe Zahlen zwischen 95-99 ein und es ist in Ordnung, das Ergebnis wird angezeigt. Aber wenn ich 94 einfüge, was 99 hinzufügt, da es weniger als 100 ist, und das Ergebnis mehr als 100 ergibt, wird das Ergebnis nicht angezeigt und das Programm stoppt einfach dort.
Hier ist der Code: Wenn Sie eine Zahl von weniger als 95 eingeben, weil man nie x aktualisierenProgramm zeigt kein Ergebnis, wenn das Ergebnis mehr als 100 ist?

#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

Wenn Sie 'iostream.h' erfolgreich integrieren können, ist Ihr Compiler uralt. Aktualisieren Sie so schnell wie möglich, denn Sie werden es sehr schwer finden, idiomatische C++ damit zu schreiben. – StoryTeller

+1

Dieser Code ist nicht übertragbar und funktioniert nur unter Windows. – tambre

+1

Außerdem ist '' kein Standard-C++ - Header. Auf Linux- und MacOSX-Systemen existiert es nicht. Und bitte wechseln Sie zu mindestens einem C++ 11 kompatiblen Compiler (wobei '' nicht existiert) –

Antwort

4

Es ist eine unendliche Schleife ist. Was Sie tun wollten, war a += 5. Stattdessen aktualisiert die Schleife nach jeder Iteration a um 5 größer als x, aber da x immer der Wert ist, den der Benutzer eingegeben hat, machen Sie keine Fortschritte.

+0

Wenn der Benutzer einen Wert von x von 95 oder mehr (aber weniger als 100 - also 95, 96, 97, 98 oder 99) eingibt, endet die Schleife nach einer Iteration, nicht wahr? Wenn "x" größer als 99 ist, wird die Schleife null Mal ausgeführt. Und Benutzer ignorieren natürlich routinemäßig Anweisungen wie 'weniger als 100' (und wählen Werte wie '-100' als 'weniger als 100') ... –

+0

Omg Ich fühle mich dumm. Vielen Dank! –

+1

passiert die ganze Zeit! Beim nächsten Mal versuchen Sie, mit einem Debugger durch den Code zu gehen und nach jeder Iteration den Wert von "a" zu prüfen. – emschorsch

Verwandte Themen