C plus plus - Programmierung Do While Schleife
Ein freundliches Hallo an alle,
ich versuche mich momentan ein Bisschen am Programmieren (mehr oder weniger erfolgreich :D ).
Ich versuche eine do-while Schleife zu bauen aber das klappt nicht ganz.
#include <iostream>
#include <math> // Headerdatei für mathematische Funktionen
using namespace std;
int main()
{
int eingabe;
char * ende;
double wurzel;
do
{
cout <<"Programm zur Wurzelberechnung" << endl;
cout << endl;
cout << "Geben Sie bitte eine Zahl ein: ";
cin >> eingabe;
if (eingabe >=0)
{
wurzel=sqrt(eingabe);
cout << "Wurzel von " << eingabe << " = "
<< wurzel << endl;
}
else
{
cout << "Wurzel negativer Zahlen kann nicht"
<< "berechnet werden" <<endl;
}
cout << "Neue Berechnung (ja / nein)"<<endl;
cin >> ende;
}
while (ende="ja");
cout << endl;
cout << "Programm wird beendet.";
getchar();
return 0;
Das Programm soll eine Wurzelberechnung durchführen. Wenn die Eingabe positiv ist, soll die Rechnung erfolgen,
wenn die eine negative Zahl eingegeben wird, wird : cout "Wurzel negativer Zahlen kann nicht berechnet werden"
ausgegeben. Nach if oder else soll mir die Möglichkeit angeboten werden ob ich das Ganze nochmal machen möchte.
Endlich zum Problem:
Wenn ich das Programm ausführe, die Wurzelberechnung erledige werde ich halt gefragt ob ich denn noch einmal rechnen möchte, allerdings ist es dann egal, was ich eingebe, das Programm beendet sich. Und da liegt der Fehler... Das Programm soll sich nur bei ja fortsetzen und bei nein beenden
Was muss ich verändern damit es funktioniert? Bzw. was habe ich falsch programmiert?
LG coma11
ich versuche mich momentan ein Bisschen am Programmieren (mehr oder weniger erfolgreich :D ).
Ich versuche eine do-while Schleife zu bauen aber das klappt nicht ganz.
#include <iostream>
#include <math> // Headerdatei für mathematische Funktionen
using namespace std;
int main()
{
int eingabe;
char * ende;
double wurzel;
do
{
cout <<"Programm zur Wurzelberechnung" << endl;
cout << endl;
cout << "Geben Sie bitte eine Zahl ein: ";
cin >> eingabe;
if (eingabe >=0)
{
wurzel=sqrt(eingabe);
cout << "Wurzel von " << eingabe << " = "
<< wurzel << endl;
}
else
{
cout << "Wurzel negativer Zahlen kann nicht"
<< "berechnet werden" <<endl;
}
cout << "Neue Berechnung (ja / nein)"<<endl;
cin >> ende;
}
while (ende="ja");
cout << endl;
cout << "Programm wird beendet.";
getchar();
return 0;
Das Programm soll eine Wurzelberechnung durchführen. Wenn die Eingabe positiv ist, soll die Rechnung erfolgen,
wenn die eine negative Zahl eingegeben wird, wird : cout "Wurzel negativer Zahlen kann nicht berechnet werden"
ausgegeben. Nach if oder else soll mir die Möglichkeit angeboten werden ob ich das Ganze nochmal machen möchte.
Endlich zum Problem:
Wenn ich das Programm ausführe, die Wurzelberechnung erledige werde ich halt gefragt ob ich denn noch einmal rechnen möchte, allerdings ist es dann egal, was ich eingebe, das Programm beendet sich. Und da liegt der Fehler... Das Programm soll sich nur bei ja fortsetzen und bei nein beenden
Was muss ich verändern damit es funktioniert? Bzw. was habe ich falsch programmiert?
LG coma11
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 201448
Url: https://administrator.de/forum/c-plus-plus-programmierung-do-while-schleife-201448.html
Ausgedruckt am: 24.12.2024 um 00:12 Uhr
11 Kommentare
Neuester Kommentar
Auf die Schnelle:
- char * ende; -> da wird nie Speicher für reserviert?
- mit == kann man nur einzelne Zeichen vergleichen, du kannst z.B. char ende (* weglassen) verwenden (ist dann nur ein zeichen) und als Eingabe nur j oder n benutzen
- strings Vergleichen mit z.B. strcmp: http://www.cplusplus.com/reference/cstring/strcmp/
have fun
- char * ende; -> da wird nie Speicher für reserviert?
- mit == kann man nur einzelne Zeichen vergleichen, du kannst z.B. char ende (* weglassen) verwenden (ist dann nur ein zeichen) und als Eingabe nur j oder n benutzen
- strings Vergleichen mit z.B. strcmp: http://www.cplusplus.com/reference/cstring/strcmp/
have fun
Hallo,
soweit ich weiß, kann man in C++ mit == keine Strings vergleichen, nur Zahlen oder (einzelne) Zeichen.
Probier doch mal 'j' und 'n' anstatt "ja" und "nein". Oder schau Dir mal die string Bibliothek an.
http://www.cplusplus.com/reference/string/string/compare/
Markus
Edit: da war danielfr schneller, aber damit sollte der Fehler im Programm wohl gefunden sein.
soweit ich weiß, kann man in C++ mit == keine Strings vergleichen, nur Zahlen oder (einzelne) Zeichen.
Probier doch mal 'j' und 'n' anstatt "ja" und "nein". Oder schau Dir mal die string Bibliothek an.
http://www.cplusplus.com/reference/string/string/compare/
Markus
Edit: da war danielfr schneller, aber damit sollte der Fehler im Programm wohl gefunden sein.
dann versuche es mal mit getchar statt cin:
http://www.cplusplus.com/reference/cstdio/getchar/
vielleicht wäre es ganz gut erstmal die Grundlagen festzuklopfen... z.B.
http://www.online-tutorials.net/c-c++-c/c++-tutorial-teil-1/tutorials-t ...
http://www.cplusplus.com/reference/cstdio/getchar/
vielleicht wäre es ganz gut erstmal die Grundlagen festzuklopfen... z.B.
http://www.online-tutorials.net/c-c++-c/c++-tutorial-teil-1/tutorials-t ...