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, 2895 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
Basic
Programmierung von Windows Programmen (13)

Frage von Ghost108 zum Thema Basic ...

Batch & Shell
gelöst Dateinamen auslesen und in einer Schleife benutzen (12)

Frage von TeholBeddict zum Thema Batch & Shell ...

Batch & Shell
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Neue Wissensbeiträge
Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
VPN Tunnel aufbauen (16)

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

Router & Routing
ASUS RT-N18U mit VPN Client hinter Fritzbox - Portforwarding (13)

Frage von marshall75000 zum Thema Router & Routing ...

Microsoft Office
Saubere HTML aus Word-Dokument (13)

Frage von peterpa zum Thema Microsoft Office ...

E-Mail
gelöst Probleme beim E-Mail Empfang (12)

Frage von TommyB83 zum Thema E-Mail ...