Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

C plus plus - Programmierung Do While Schleife

Frage Entwicklung C und C++

Mitglied: coma11

coma11 (Level 1) - Jetzt verbinden

08.02.2013 um 12:02 Uhr, 2917 Aufrufe, 11 Kommentare

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
Mitglied: SlainteMhath
08.02.2013 um 12:07 Uhr
Moin,

01.
[...] 
02.
while (ende="ja"); 
03.
[...]
==

lg,
Slainte
Bitte warten ..
Mitglied: coma11
08.02.2013 um 12:08 Uhr
Funktioniert bei mir so leider nicht
Bitte warten ..
Mitglied: SlainteMhath
08.02.2013 um 12:19 Uhr
Funktioniert bei mir so leider nicht
Kannst Du das mal genauer erklären?

ende="ja" ist eine Zuweisung.
ende=="ja" ist ein Vergleich.
Bitte warten ..
Mitglied: coma11
08.02.2013 um 12:25 Uhr
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.
Bitte warten ..
Mitglied: danielfr
08.02.2013 um 13:45 Uhr
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
Bitte warten ..
Mitglied: hmarkus
08.02.2013, aktualisiert um 13:59 Uhr
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.
Bitte warten ..
Mitglied: ChrisMoltisanti
08.02.2013 um 14:33 Uhr
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ß
Bitte warten ..
Mitglied: coma11
08.02.2013 um 14:53 Uhr
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
Bitte warten ..
Mitglied: coma11
08.02.2013 um 15:34 Uhr
Wenn ich das * bei char * ende; (in Zeile 9) dann spuckt er mir folgenden Fehlermeldung aus:

Cannot convert 'char *' to 'char' in function main()
Bitte warten ..
Mitglied: danielfr
08.02.2013 um 16:03 Uhr
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 ...
Bitte warten ..
Mitglied: coma11
18.02.2013 um 07:41 Uhr
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
Bitte warten ..
Ähnliche Inhalte
PHP
gelöst PHP Key - Value Dictionary in einer Schleife erzeugen (3)

Frage von facebraker zum Thema PHP ...

VB for Applications
Visual Basics Programmierung (8)

Frage von specialuser zum Thema VB for Applications ...

Batch & Shell
gelöst Abfrage ERRORLEVEL springt aus der FOR Schleife (8)

Frage von Galindiesel zum Thema Batch & Shell ...

Batch & Shell
gelöst Warum funktioniert das echo in meiner for-Schleife auch mit Sonderzeichen? (9)

Frage von Pedant zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Server
WIndows Server 2016 core auf dem Intel NUC NUC5i5RYK i5 5250U (17)

Frage von IxxZett zum Thema Windows Server ...

LAN, WAN, Wireless
Zwei Subnetze mit je eigenem Router und Internetzugang verbinden (17)

Frage von hannsgmaulwurf zum Thema LAN, WAN, Wireless ...