Huhu ich habe ein kleines Problem bei einem (vermutlich) relativ simplen C++ Programm. # include <iostream> # include <stdio.h> # include <math.h> using namespace std; int main () { system ("PAUSE"); double x; double y; cout << "Bitte Radikant eingeben: " << endl; cin >> x; do { y=x-0.000001; while ( (y*y-x)/x >= 0.000001); } cout << "Wurzel: " << (0.5*(sqrt(y)+(x/(sqrt(y))))) << endl; system ("PAUSE"); return 0; } Fehlermeldung: error C2061: Syntaxfehler: Bezeichner 'cout' Ich weiß wirklich nicht was das Programm damit meint ... und meine do while schleife funktioniert auch nicht -.- wäre echt nett wenn mir hier jemand weiter helfen kann vielen dank schonmal
Krabs schrieb: > Fehlermeldung: > error C2061: Syntaxfehler: Bezeichner 'cout' > Ich weiß wirklich nicht was das Programm damit meint ... Es meint damit, daß der Name cout ihm unbekannt ist. Das liegt daran, daß cout im Namespace std definiert ist. Du mußt std::cout schreiben. Gleiches gilt für cin und endl. > und meine do while schleife funktioniert auch nicht -.- Zum einen steht das while innerhalb der Schleife (es müßte nach der schließenden geschweiften Klammer stehen), zum anderen wird diese Schleife je nach dem vorher eingegebenen Wert entweder genau einmal oder für immer durchlaufen. Es wird schließlich innerhalb der Schleife nichts weiter getan, als daß y immer wieder derselbe Wert zugewiesen wird.
sieht eigentlich gut aus. cout sollte in der iostream deklariert werden und im Namespace std liegen, den du korrekt importierst. bist du sicher, dass du die richtige Datei compilierst, oder die Datei gespeichert hast? was benutzt du denn für eine IDE und compiler? das nächste mal benutze bitte c-Tags
1 | [c] |
2 | |
3 | [/c] |
außerdem: system-Aufrufe sind nicht schön. gleiches kannst du erreichen durch
1 | char c; |
2 | cin >> c; |
schmeiße am besten die stdio und die system-Aufrufe raus. Daran wirds aber nicht liegen
1) Bring Dein Profgramm in eine vernünftige Form! So will das niemand lesen. 2) Beim Posten Code-Tags benutzen! 3) Die Fehlermeldung enthält sicher auch eine Zeilennummer? Der Fehler liegt in der Zeile davor. Meine Glaskugel meint:
1 | cout << "Wurzel: " << (0.5*(sqrt(y)+(x/(sqrt(y))))) << endl; |
ist die Zeile, die angemeckert wird. Wie gesagt, der Fehler liegt in der Zeile davor.
Krabs schrieb: > do > { > y=x-0.000001; > while ( (y*y-x)/x >= 0.000001); > } das stück ist auf jeden fall falsch: das while muss hinter die schließende geschweifte klammer
1 | do
|
2 | {
|
3 | y=x-0.000001; |
4 | } while ( (y*y-x)/x >= 0.000001); |
außerdem hast du hier eine Endlosschleife, in der y immer neu berechnet wird, sich aber nix an den zugehörigen Termen ändert, folglich aber auch die Abbruchbedingung nie erfüllt wird, wenn sie nicht schon beim ersten Test erfüllt ist edit: ich hab die Fehlermeldung vorhin als "unbekannter Bezeichner" interpretiert. Tatsächlich beschwert er sich aber daraüber, dass er ein cout anstelle des whiles findet. Das innere While funktioniert, weil es in dieser Form als While-schleife mit leerem Body (nur Semikolon) interpretiert wird.
Stand doch eindeutig da: "Syntaxfehler:" Und
1 | do { ... } cout ... |
ist nunmal kein gültiges C-Konstrukt, weshalb der Compiler zu Recht beim Auftauchen von "cout" rummeckert.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.