coma11
Goto Top

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

Content-Key: 201448

Url: https://administrator.de/contentid/201448

Printed on: April 23, 2024 at 07:04 o'clock

Member: SlainteMhath
SlainteMhath Feb 08, 2013 at 11:07:21 (UTC)
Goto Top
Moin,

[...]
while (ende="ja");  
[...]

==

lg,
Slainte
Member: coma11
coma11 Feb 08, 2013 at 11:08:46 (UTC)
Goto Top
Funktioniert bei mir so leider nicht
Member: SlainteMhath
SlainteMhath Feb 08, 2013 at 11:19:45 (UTC)
Goto Top
Funktioniert bei mir so leider nicht
Kannst Du das mal genauer erklären?

ende="ja" ist eine Zuweisung.
ende=="ja" ist ein Vergleich.
Member: coma11
coma11 Feb 08, 2013 at 11:25:17 (UTC)
Goto Top
Wenn ich deine Veränderung einbaue bleibt der Fehler dass es dem Programm egal ist was ich eingebe, es möchte eine neue Zahl zum Rechnen.
Member: danielfr
danielfr Feb 08, 2013 at 12:45:46 (UTC)
Goto Top
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
Mitglied: 64748
64748 Feb 08, 2013 updated at 12:59:30 (UTC)
Goto Top
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.
Member: ChrisMoltisanti
ChrisMoltisanti Feb 08, 2013 at 13:33:59 (UTC)
Goto Top
Hi coma11,

es wäre sicherlich hilfreich beim nächsten Mal den Code als Code zu posten und evtl. die Schleife und die If-Bedingung etwas einzurücken, um den Code leserlicher zu machen!

Gruß
Member: coma11
coma11 Feb 08, 2013 at 13:53:52 (UTC)
Goto Top
Zitat von @ChrisMoltisanti:
Hi coma11,

es wäre sicherlich hilfreich beim nächsten Mal den Code als Code zu posten und evtl. die Schleife und die If-Bedingung
etwas einzurücken, um den Code leserlicher zu machen!

Gruß

Sorry hab ich dem Fall nich wirklich bedacht, es sei mir bitte als Anfängerfehler verziehen. :D

Danke schon mal für eure Hilfe, ich gebe Rückmeldung wenn ich es probiert hab.

LG coma11
Member: coma11
coma11 Feb 08, 2013 at 14:34:24 (UTC)
Goto Top
Wenn ich das * bei char * ende; (in Zeile 9) dann spuckt er mir folgenden Fehlermeldung aus:

Cannot convert 'char *' to 'char' in function main()
Member: danielfr
danielfr Feb 08, 2013 at 15:03:12 (UTC)
Goto Top
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 ...
Member: coma11
coma11 Feb 18, 2013 at 06:41:21 (UTC)
Goto Top
Ich kam heute endlich dazu die ganze Sache zu probieren...

Habs mit euren ganzen Tipps letzetndlich hinbekommen...

Ein weiteres Danke an die Hilfe der Community

LG coma11