C++ Finde den Fehler nicht

raphi1995

Commodore
Registriert
Juli 2010
Beiträge
4.409
Hallo. ich habe folgendes Programm geschrieben. Jedoch mag der Compiler es nicht fresse. Ich bin schon ewig am rumrätseln warum es nicht läuft.

Hier das Programm:


#include<iostream>
using namespace std;
int main ()

{
char Zahl;


cout<<"Programm zur Berechnung des Volumes eines Quaders eines Zylinders\n";
cout<<"oder einer Kugel\n\n ";
cout<<"------------------------------------------------------------------\n\n";
cout<<"Zur Berechnung des Quadervolumens geben Sie die Kennziffer 1 ein.\n ";
cout<<"Zur Berechnung des Zylindervolumens geben Sie die Kennziffer 2 ein.\n ";
cout<<"Zur Berechnung des Kegelvolumens geben Sie die Kennziffer 3 ein.\n ";
cout<<"------------------------------------------------------------------\n";
cin>> Zahl ;

switch (Zahl)

double a,b,c,d,r,h;
{
case '1':
cout << "Kennziffer 1\n" << endl;
cout << " Geben sie a fuer die Breite an , b fuer die Tiefe und c fuer die Hoehe\n ";
cout<<"Die Breite: \n";
cin>> a;
cout<<"Die Tiefe: \n";
cin>>b;
cout<<"Die Hoehe: \n";
cin>>c;
d=a*b*c;
cout<<d <<"mü\n\n";
}
break;

{
case '2':
cout<< "Kennziffer 2\n " << endl;
cout<< " Geben Sie r fuer den Radius an, h fuer die Hoehe\n";
cout<< " Radius : ";
cin >> r;
cout<< "Geben Sie h fuer die Hoehe ein ";
cin >> h;
d=3.14*r*r*h;
cout<<d <<"mü\n\n";
}
break;

{
case '3':
cout << "Kennziffer 3 " << endl;
cout<< "Geben sie h fuer die Hoehe an und r fuer den Radius\n";
cout<< "Die Hoehe: ";
cin>> h;
cout<<"Geben sie den Radius an: ";
cin>> r;
d=3.14*r*r*h/3;
cout<<d <<"mü\n\n";
}
break;


}





Hier sind die Fehlermeldungen bei denen ich nicht mehr weiter weiss


1> Test.cpp
1>c:\users\admin\documents\notes\test\test\test.cpp(20): warning C4060: switch statement contains no 'case' or 'default' labels
1>c:\users\admin\documents\notes\test\test\test.cpp(22): error C2046: illegal case
1>c:\users\admin\documents\notes\test\test\test.cpp(26): error C2065: 'a' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(28): error C2065: 'b' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(30): error C2065: 'c' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(31): error C2065: 'd' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(31): error C2065: 'a' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(31): error C2065: 'b' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(31): error C2065: 'c' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(32): error C2065: 'd' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(34): error C2043: illegal break
1>c:\users\admin\documents\notes\test\test\test.cpp(37): error C2046: illegal case
1>c:\users\admin\documents\notes\test\test\test.cpp(41): error C2065: 'r' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(43): error C2065: 'h' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(44): error C2065: 'd' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(44): error C2065: 'r' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(44): error C2065: 'r' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(44): error C2065: 'h' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(45): error C2065: 'd' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(47): error C2043: illegal break
1>c:\users\admin\documents\notes\test\test\test.cpp(50): error C2046: illegal case
1>c:\users\admin\documents\notes\test\test\test.cpp(54): error C2065: 'h' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(56): error C2065: 'r' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(57): error C2065: 'd' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(57): error C2065: 'r' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(57): error C2065: 'r' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(57): error C2065: 'h' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(58): error C2065: 'd' : undeclared identifier
1>c:\users\admin\documents\notes\test\test\test.cpp(60): error C2043: illegal break


Ich bin echt am verzweifeln -.-
Weiss wer weiter?

Grüße!
 
Du kannst keine Variablen direkt nach "switch" deklarieren Oo
Fehlermeldung lesen hilft btw ;)

Und dein switch-case Konstrukt ist ziemlich daneben.
Deine geschweiften Klammern sind falsch gesetzt, daher "illegal case" und "illegal switch".
Du brauchst nur eine nach switch und eine nach dem letzten case oder nach default.

Code:
#include<iostream>
 using namespace std;
 int main ()

 { 
 char Zahl;


 cout<<"Programm zur Berechnung des Volumes eines Quaders eines Zylinders\n";
 cout<<"oder einer Kugel\n\n ";
 cout<<"------------------------------------------------------------------\n\n";
 cout<<"Zur Berechnung des Quadervolumens geben Sie die Kennziffer 1 ein.\n ";
 cout<<"Zur Berechnung des Zylindervolumens geben Sie die Kennziffer 2 ein.\n ";
 cout<<"Zur Berechnung des Kegelvolumens geben Sie die Kennziffer 3 ein.\n ";
 cout<<"------------------------------------------------------------------\n";
 cin>> Zahl ;

 switch (Zahl)

 double a,b,c,d,r,h; // DAS HIER GEHÖRT VOR SWITCH( ZAHL )!
 {
 case '1':
 cout << "Kennziffer 1\n" << endl;
 cout << " Geben sie a fuer die Breite an , b fuer die Tiefe und c fuer die Hoehe\n ";
 cout<<"Die Breite: \n";
 cin>> a;
 cout<<"Die Tiefe: \n";
 cin>>b;
 cout<<"Die Hoehe: \n";
 cin>>c;
 d=a*b*c;
 cout<<d <<"mü\n\n";
 } // DIE GEHÖRT HIER NICHT HIN! GENAUSO WIE DIE NÄCHSTEN
 break;

 { 
 case '2':
 cout<< "Kennziffer 2\n " << endl;
 cout<< " Geben Sie r fuer den Radius an, h fuer die Hoehe\n";
 cout<< " Radius : ";
 cin >> r;
 cout<< "Geben Sie h fuer die Hoehe ein ";
 cin >> h;
 d=3.14*r*r*h;
 cout<<d <<"mü\n\n";
 }
 break;

 {
 case '3':
 cout << "Kennziffer 3 " << endl;
 cout<< "Geben sie h fuer die Hoehe an und r fuer den Radius\n";
 cout<< "Die Hoehe: ";
 cin>> h;
 cout<<"Geben sie den Radius an: ";
 cin>> r;
 d=3.14*r*r*h/3;
 cout<<d <<"mü\n\n";
 }
 break;


 }
 
Zuletzt bearbeitet:
Code:
switch (Zahl)

[COLOR="Red"]double a,b,c,d,r,h;[/COLOR]
{

was soll das sein? du kannst da dazwischen nicht einfach mal ein paar variablen deklarieren.
 
So wurde uns das heute beigebracht O.o ich habe die Kopie doch vor mir liegen!

So n Mist.
Ergänzung ()

Wie sind die Klammern den zu setzen?
 
Nie im Leben wurde dieser Code euch so beigebracht, niemals ;)

Schreib es nochmal neu und lese vorher wie switch-Konstrukte geschrieben werden, was da hin darf und muss usw...

Eine geschweifte Klammer nach switch, dann die cases, dann evtl. default, dann erst die schließende geschweifte Klammer.

Code:
switch( whatever )
{
    case 1:
         //blabla
         break;
}
 
Ok, aber ich habe die Kopie doch vor mir :S Lesen kann ich noch.

Komisch. Ok, dann danke erstmal! Vielen Dank für die schnelle hilfe!

CLOSED
 
Für mcih schaut das hier aus wie eine "Finde den Fehler" Hausaufgabe xD
btw. CODE blocks sind dazu da um sie zu benutzen

Code:
 Hier steht dein

bei langen Codes ist das hier zu bevorzugen

Code:
 Hier steht dein Code
 
Zurück
Oben