Wie kann man diesen Diagramm in einem Programm umschreiben C++?
Hallo Leute,
Ich sitze seit Stunden an diesem Diagramm. Ziel ist es, diesen in einem C++ Programm umzuschreiben.
Bei der Schleife mache ich immer irgendwaa falsch, wodurch meine Endergebnisse falsch sind.
Es ist das zweite Diagramm.
int main() {
int x;
cin >> x;
if (x < 0) {
cout << "Fehler" << endl;
}
else {
while (x <= 1) {
cout << x << endl;
x = x - 2;
}
}
return 0;
}
Danke für den Code 🙂 Das macht dtinen Fehler offensichtlich.
So lange x <= 1 ist führst du die while Schleife aus.
Bsp.:
x = 2
Ausgabe:
//nothing
Das Programm endet ohne jemals die While Schleife zu betreten, da 2 <= 1 False ist. Das trifft für alle x > 1 zu.
x = 1
Ausgabe:
1
-1
-3
-4
….
Du gibst den Wert x aus, danach rechnest du x = 1 – 2 = -1, da x immer kleiner wird und die while Schleife damit true bleibt hast du eine Endlosschleife produziert. 😉
x = 0
Ausgabe:
0
Durch deine erste if Bedingung kommst du niemals in die while Schleife. Ansonsten wäre es der nächste Kandidat geworden.
——-
Was du haben willst ist etwas komplett anderes. 😉
Du möchtest das abhängig der Eingabe die while so lange läuft bis x <= 1 zu trifft.
Es ist schon gut, dass du dir zum Test mehr ausgeben lässt.
1. Empfange eine Zahl >= 0
Ist ein guter Ansatz um zu verhindern mit negativen Werten zu rechnen.
2. Die Hauptaufgabe
WENN x <= 1
DANN gebe X aus und beende die Funktion
SONST rechne x = x – 2 und mache weiter
Das heißt while entspricht dem Zeitpunkt so lange x > 1 ist.
Übrigens mit dieser while bräuchte es die obere If Abfrage gar nicht erst.
Tipp zum Lösen:
Mache dir eine Tabelle mit den Werten für die Variable. Starte mit dem Eingabe-Wert.
Prüfe dann ob die Bedingungen für if / while / do while True oder False sind.
Notiere dir Jede Änderung des Wertes deiner Variablen.
man soll in der Schleife nur bleiben solange x <=1 NICHT gilt.