WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Probs mit 'case' und 'switch' in C++ (http://www.wcm.at/forum/showthread.php?t=112876)

Groovy 21.10.2003 16:00

Probs mit 'case' und 'switch' in C++
 
Zitat:


#include <iostream.h>
#include <math.h>
int main() {

char s;
double p=0, q=0, x1=0, x2=0, w=0;
bool E=0;


do{
switch(s){

case 'e': cout<<"Enter Coefficients by pressing e";
cin>>p, q;

break;
case 'c': cout<<"To Compute enter c";
w=sqrt(pow((p/2), 2)-q);
x1=-p/2+w;
x2=-p/2-w;


if(p<=0){
cout<<"x1="<<-p<<"/2+i*"<<w;
cout<<"x2="<<-p<<"/2+i*"<<w;
}
else
cout<<"x1="<<x1<<" and "<<"x2="<<x2;



break;
case 'E': cout<<"press E to exit";
E=1;




default: return -1;

}




} while (E!=0);
}
return 0;
}
Also das Prog soll eine quadratische Gleichung lösen können.
In form eines Menüs werden 3 Eingabeaufforderungen verlangt: Koeffizienteneingabe, Berechnung der quadratischen Gleichung und Beenden mit Hilfe des Schleifenabbruches.

Wenn ich das compiliere bekomm ich ein Parse error in der Zeile 48...
Weiß seit langem nicht was da falsch ist. :heul:
Vielleicht passt was bei der Case, Switch Anweisung nicht?

Hoffentlich könnt ihr mir helfen.

_m3 21.10.2003 16:08

Re: Probs mit 'case' und 'switch' in C++
 
:lol: Verwend einen vernünftigen Editor und Einrückungen.

Zähl mal die auf- und zugehenden Klammern! ;) :D :cool:

BTW - mit [ code ] behält er die Formatierungen bei. ;)

Groovy 21.10.2003 16:15

Ups eine Klammer zuviel... :rolleyes:

Aber nun hab ich ein gröberes Problem...
Kompilieren funktioniert, aber beim Ausführen des Programmes tut sich nix. :(

irrsinn 21.10.2003 16:42

änder das while (...) auf while (E == 0).
dann sollts gehn

Groovy 21.10.2003 16:59

Das E ungleich 0 sollte passen wenn die Schleife bei case 'E' E = 1 enden soll.

Ist irgendwie verhext...wieso gibt der Compiler keine Fehlermeldung von sich? :confused:

irrsinn 21.10.2003 17:24

tschuldige, hab mich verschaut. das problem is der default zweig. den solltest in dem fall leer lassen

außerdem wirst irgendwo was in die s variable einlesen müssen.

Groovy 21.10.2003 19:54

Wie meinst du mit default zweig leer lassen?

Das ist zum Heulen das ding will einfach nicht... :heul: :mad:

irrsinn 21.10.2003 20:10

also: du legst eine variable s an. die hat irgendeinen wert, aber nicht E oder e oder c. also springst du mit return -1 aus der mail funktion raus und das programm beendet sich.

wennsts wie folgt machst, bleibt er in der schleife.
default: break;

Groovy 21.10.2003 21:39

Was ist eine Mailfunktion? :confused:
Ach das ist zum Verzweifeln...

Ich will ja nur eine Switch Anweisung in eine While Schleife einbaun und das geht nicht. :heul:

Achja mit ist außerdem aufgefallen dass ich an einigen stellen den Break nach den case Anweisungen vergessen hab. :rolleyes:
Hab's zwar schon korrigiert, funktioniert aber immer noch nicht.

irrsinn 21.10.2003 21:58

soll natürlich main funktion heißen.
vielleicht schaff ichs in zukunft mit weniger tippfehlern...


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag