From 4774e6840ff88b2ed34d91379984f9d50fd1ee66 Mon Sep 17 00:00:00 2001 From: Leaced Date: Wed, 5 Apr 2017 13:51:21 +0200 Subject: [PATCH] =?UTF-8?q?Do-while=20Schleife=20erg=C3=A4nzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sonstiges/Kreuzende Autos.cpp | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/Sonstiges/Kreuzende Autos.cpp b/Sonstiges/Kreuzende Autos.cpp index a8c83a2..35c89ab 100644 --- a/Sonstiges/Kreuzende Autos.cpp +++ b/Sonstiges/Kreuzende Autos.cpp @@ -2,7 +2,7 @@ #include #include -//Dieses Programm berechnet wann sich 2 Autos auf einer Straße treffen wobei die Geschwindigkeit beider Autos schrittweise erhöht werden kann. +//Dieses Programm berechnet wann sich 2 Autos auf einer Straße treffen wobei die Geschwindigkeit beider Autos schrittweise erhöht werden kann. int main() { @@ -10,15 +10,12 @@ int main() long double speed, distance, speedOppositeTrack, position; std::cout << "Geben sie die Strecke der Landstra\xE1 \be in km ein: "; - getline(std::cin, input); - std::stringstream(input) >> distance; - - if(0>distance) + do { - std::cout << "\nERROR: Die Strecke muss gr\x94\xE1 \ber als 0 km sein"; - getchar(); - return(1); - } + getline(std::cin, input); + std::stringstream(input) >> distance; + if(distance<0)std::cout << "\nERROR: Die Strecke muss gr\x94\xE1 \ber als 0 km sein. Gebe die Strecke erneut ein: "; + }while(distance<0); std::cout << "Geben sie ihre Startgeschwindigkeit in km/h ein: "; @@ -43,9 +40,9 @@ int main() return(1); } - std::cout << "\nGib nach jeder Ausgabe +/- ein um deine Geschwindigkeit um 5 km/h zu verringern oder erhöhen\nSie begegnen unterwegs folgenden Autos:\n"; + std::cout << "\nGib nach jeder Ausgabe +/- ein um deine Geschwindigkeit um 5 km/h zu verringern oder erhöhen\nSie begegnen unterwegs folgenden Autos:\n"; - for(long double time = distance/(speed+speedOppositeTrack), position = time*speed; position<=distance; position += speedOppositeTrack/(120*(speed+speedOppositeTrack))*speed, time += speedOppositeTrack/(120*(speed+speedOppositeTrack))) //Formel für t nicht ausreichend. + for(long double time = distance/(speed+speedOppositeTrack), position = time*speed; position<=distance; position += speedOppositeTrack/(120*(speed+speedOppositeTrack))*speed, time += speedOppositeTrack/(120*(speed+speedOppositeTrack))) //Formel für t nicht ausreichend. { if(position>ULLONG_MAX) {