Keine Ausgabe bei while Schleife
-
do { if (first_Number > second_Number) cout << "\nDanke!\n"; else cout << "\nDie zweite Zahl ist groesser!"; } while(first_Number!=0.123);Wenn ich das programmiere, dann kommt die ganze Zeit nur das selbe...
Ich komme einfach nicht darauf, wie es richtig gehört.
-
double e=0.123456789; std::cin>>e; while(e!=0.123456789){ //mache irgenetwas }
-
Ursprünglicher Code:
#include <iostream> using namespace std; int main() { int first_Number, second_Number; cout << "Bitte eine grosse Zahl eingeben: "; cin >> first_Number; cout << "nBitte eine kleinere Zahl eingeben: "; cin >> second_Number; if (first_Number > second_Number) cout << "nDanke!n"; else cout << "nDie zweite Zahl ist groesser!"; return 0; }Dazu habe ich dann folgendes programmiert:
#include <iostream> using namespace std; int main() { int first_Number, second_Number; cout << "Bitte eine grosse Zahl eingeben: "; cin >> first_Number; cout << "nBitte eine kleinere Zahl eingeben: "; cin >> second_Number; cout << "Zahl fuer e eingeben: " ; double e; cin >> e; while(e!=0.123456789) { if (first_Number > second_Number) cout << "nDanke!n"; else cout << "nDie zweite Zahl ist groesser!"; } return 0; }Wenn ich aber jetzt beispielsweise
->für first_Number 5000 und für secon_Number 2500 eingebe, dann kommt endlos "Danke!".
->für first_Number 2500 und für second_Number 5000 eingeben, dann kommt endlos "Die zweite Zahl ist groesser!"
Und das will ich auch nicht.
Ich hätte nicht gedacht, dass eine While-Schleife so kompliziert ist.
-
silent_max schrieb:
Ich hätte nicht gedacht, dass eine While-Schleife so kompliziert ist.
Sag mal trollst du? Wird jedenfalls immer witziger.

e = x + 1 solange (e != x) { mache irgendwas, was e nicht verändert. }Hm.. was passiert da wohl. Mal ganz scharf nachdenken jetzt.
-
ist klar!
wenn du einmal e eingegeben hast, und du sie korekt eingiebst, läuft die schleife!Du müsstest die Zahlen in der Schleife einlesen!
so:double e=0.123456789; cin>>e; while(e!=0.123456789){ cin>>große_Zahl>>kleine_Zahl; if(große_Zahl>kleine_Zahl){ cout<<"Danke"<<endl; return 0; } else cout<<"Die zweite Zahl ist groesser"<<endl; }
-
silent_max schrieb:
Ich hätte nicht gedacht, dass eine While-Schleife so kompliziert ist.
Was willst du mit der while-Schleife denn überhaupt bezwecken? So, wie du sie verwendest, macht das auch keinen Sinn.
-
Ok, ich versuch es Dir zu erklären.
Der ursprüngliche Code war wie folgt:
#include <iostream> using namespace std; int main() { int first_Number, second_Number; cout << "Bitte eine grosse Zahl eingeben: "; cin >> first_Number; cout << "nBitte eine kleinere Zahl eingeben: "; cin >> second_Number; if (first_Number > second_Number) cout << "nDanke!n"; else cout << "nDie zweite Zahl ist groesser!"; return 0; }Da ich keine Lust gehabt habe, jedes Mal auf "Starten ohne Debuggen" klicken zu müssen, wenn ich zwei Zahlen miteinander vergleichen möchte, ist folgender Quellcode entwickelt worden:
#include <iostream> using namespace std; int main() { double quiet=0.123456789; while(quiet) { double first_Number, second_Number; cout << "Zwei Zahlen bitte!"<<endl; cout << "Bitte eine grosse Zahl eingeben: "<<endl; cin >> first_Number; cout << "\nBitte eine kleinere Zahl eingeben: "<<endl; cin >> second_Number; if (first_Number > second_Number) cout << "\nDanke!\n"; else cout << "\nDie zweite Zahl ist groesser!\n"; } return 0; }Der Quellcode an sich funktioniert.
Bloß wenn ich jetzt für beide Eingaben 0.123456789 eingebe, kommt eine Endlosschleife. Meinerseits war aber gewünscht, dass, wenn 0.123456789 eingegeben wird, die Schleife beendet und das Fenster geschlossen wird.
Ich hoffe, dass ich es rüberbringen konnte.
Wie würdest Du es machen?
Gruß
Edit:
Ich merke gerade, dass das ja nicht funktionieren kann und dass es stimmt, dass eine While-Schleife dafür sinnlos ist.Aber wie würdet ihr es machen? Ich bin für Vorschläge offen...
-
cout << "Bitte Zahlenpaare eingeben, irgendwas anderes eingeben für Ende:\n"; for (int erste, zweite; cin >> erste >> zweite; ;) if (erste > zweite) cout << "Die erste Zahl ist größer als die zweite Zahl.\n"; else if (erste < zweite) cout << "Die zweite Zahl ist größer als die erste Zahl.\n"; else cout << "Beide Zahlen sind gleich groß.\n";
-
Semikolon zu viel.
-
314159265358979 schrieb:
Semikolon zu viel.
Und wo?
EDIT: In der for-Schleife. Jetzt seh ich es auch.