Aus zwei mach eins



  • Aus zwei mach eins, klappt bei mir nicht. Beide Programme, switch und funktion sind gut gelaufen. Nur zusammen nicht, also mache ich was verkehrt. Aber was ? Bitte helft mir,
    Danke im voraus.
    juhu123
    Hier die Fehlermeldung

    ||=== WerkzeugSP1, Debug ===|
    /home/alexander/c++/WerkzeugSP1/WerkzeugSP1/main.cpp||In function ‘int main()’:|
    /home/alexander/c++/WerkzeugSP1/WerkzeugSP1/main.cpp|41|error: a function-definition is not allowed here before ‘{’ token|
    ||=== Build finished: 1 errors, 0 warnings (0 minutes, 0 seconds) ===|

    #include <iostream>
    
     using namespace std;
    
    double Mehrwertsteuer(double p);
    
    int main ()
    {
        char wiederholung,auswahl;
    
           do
       {
    
        cout << " Bitte waehlen Sie aus: " << endl;
        cout << " [a] inklusive Mehrwertsteuer " << endl;
        cout << " [b] test " << endl;
        cin >> auswahl;
    
        switch (auswahl)
           {
    
                case ('a'):
                    {
    
                          cout << "inklusive Mehrwertsteuer" << endl;
    
                          {
                            double w;
                            cout<<"Geben Sie den Preis der Ware (inklusive Mehrwertsteuer): ";
                            cin>>w;
                            cout<<"Die Mehrwertsteuer ist: "<<Mehrwertsteuer(w)<<endl;
                          }
    
                            double Mehrwertsteuer(double p)
    
                          {
                            return p*0.19/1.19;
                          }
    
                    } break;
    
                case ('b'):
                    {
    
                            cout << "test ist gut" << endl;
    
                    } break;
    
                default:
                    {
    
                        cout <<"Falsche eingabe" << endl;
    
                    }
               }
    
           cout << "Druecken Sie die Taste 'J' um ins Menü zu kommen" << endl;
           cout << "Nachhause gehts mit der >  #  < Taste, oder so!" << endl;
           cin >> wiederholung;
    
       } while (wiederholung == 'J' || wiederholung == 'j');
    
      return 0;
    }
    

    mit der Code Eingabe habe ich massive Probleme, bitte um Hilfe



  • Die Methode "double Mehrwertsteuer(double p)" darf nicht innerhalb von main definiert werden.



  • [quote="daddy_felix"]Die Methode "double Mehrwertsteuer(double p)" darf nicht innerhalb von main definiert werden.[/quote]
    habe ich ja auch nicht,

    #include <iostream>

    using namespace std;

    double Mehrwertsteuer(double p);

    int main ()

    oder habe ich dich nicht richtig verstanden



  • Ich sehe da in der main

    double Mehrwertsteuer(double p) 
    
    { 
    return p*0.19/1.19; 
    }
    

    Das gehört aus der main raus.

    Du setzt übrigens deine Tags völlig richtig. Hast du "BBCode in diesem Beitrag deaktivieren" geklickt?



  • juhu123 schrieb:

    daddy_felix schrieb:

    Die Methode "double Mehrwertsteuer(double p)" darf nicht innerhalb von main definiert werden.

    habe ich ja auch nicht,

    #include <iostream>

    using namespace std;

    double Mehrwertsteuer(double p);

    int main ()

    oder habe ich dich nicht richtig verstanden

    und das ist nur eine Deklaration, keine definition



  • Wenn du deinen Code mit Code Tags (unter dem Textfeld verfügbar) formatiert hättest könnte man dir sagen, in welche Zeile das Problem liegt. So kann man nur sagen, dass du ziemlich genau in der Mitte deines Quellcodes die Funktion double Mehrwertsteuer( double p ) definierst. Und die, das hat dir daddy_felix schon erklärt, gehört da nicht hin.



  • So sehe es mit Code-Tags aus, und nach Entfernen der Leerzeilen und durch AStyle geschickt.

    //Keine Anferung am Code außer Einrücken und formatieren
    
    #include <iostream>
    
    using namespace std;
    
    double Mehrwertsteuer(double p);
    
    int main() {
    	char wiederholung,auswahl;
    	do {
    		cout << " Bitte waehlen Sie aus: " << endl;
    		cout << " [a] inklusive Mehrwertsteuer " << endl;
    		cout << " [b] test " << endl;
    		cin >> auswahl;
    		switch(auswahl) {
    			case('a'): {
    				cout << "inklusive Mehrwertsteuer" << endl;
    				{
    					double w;
    					cout<<"Geben Sie den Preis der Ware (inklusive Mehrwertsteuer): ";
    					cin>>w;
    					cout<<"Die Mehrwertsteuer ist: "<<Mehrwertsteuer(w)<<endl;
    				}
    				double Mehrwertsteuer(double p) {
    					return p*0.19/1.19;
    				}
    			}
    			break;
    			case('b'): {
    				cout << "test ist gut" << endl;
    			}
    			break;
    			default: {
    				cout <<"Falsche eingabe" << endl;
    			}
    		}
    		cout << "Druecken Sie die Taste 'J' um ins Menü zu kommen" << endl;
    		cout << "Nachhause gehts mit der >  #  < Taste, oder so!" << endl;
    		cin >> wiederholung;
    	}
    	while(wiederholung == 'J' || wiederholung == 'j');
    	return 0;
    }
    


  • #include <iostream>
    
     using namespace std;
    
    double Mehrwertsteuer(double p);
    
    int main ()
    {
        char wiederholung,auswahl;
    
           do
       {
    
        cout << " Bitte waehlen Sie aus: " << endl;
        cout << " [a] inklusive Mehrwertsteuer " << endl;
        cout << " [b] test " << endl;
        cin >> auswahl;
    
        switch (auswahl)
           {
    
                case ('a'):
                    {
    
                          cout << "inklusive Mehrwertsteuer" << endl;
    
                          {
                            double w;
                            cout<<"Geben Sie den Preis der Ware (inklusive Mehrwertsteuer): ";
                            cin>>w;
                            cout<<"Die Mehrwertsteuer ist: "<<Mehrwertsteuer(w)<<endl;
                          }
    
                          double Mehrwertsteuer(double p)
    
                          {
                            return p*0.19/1.19;
                          }
    
                    } break;
    
                case ('b'):
                    {
    
                            cout << "test ist gut" << endl;
    
                    } break;
    
                default:
                    {
    
                        cout <<"Falsche eingabe" << endl;
    
                    }
               }
    
           cout << "Druecken Sie die Taste 'J' um ins Menü zu kommen" << endl;
           cout << "Nachhause gehts mit der >  #  < Taste, oder so!" << endl;
           cin >> wiederholung;
    
       } while (wiederholung == 'J' || wiederholung == 'j');
    
      return 0;
    }
    

    Hier das Original läuft gut

    #include <iostream>
    using namespace std;
    
    double Mehrwertsteuer(double p);
    
    main()
    
    {
        double w;
        cout<<"Geben Sie den Preis der Ware (inklusive Mehrwertsteuer): ";
        cin>>w;
        cout<<"Die Mehrwertsteuer ist: "<<Mehrwertsteuer(w)<<endl;
    }
    
    double Mehrwertsteuer(double p)
    
    {
        return p*0.19/1.19;
    }
    

    Wo muss den dann >double Mehrwertsteuer(double p)< hin ? ich verstehe es nicht



  • juhu123 schrieb:

    Wo muss den dann >double Mehrwertsteuer(double p)< hin ? ich verstehe es nicht

    😕

    Das hast du in deinem unteren Codeschnipsel doch schon ganz richtig gemacht...



  • Ich weiß nicht weiter 😞

    #include <iostream>
    
     using namespace std;
    
    double Mehrwertsteuer(double p);
    
    int main ()
    {
        char wiederholung,auswahl;
    
           do
       {
    
        cout << " Bitte waehlen Sie aus: " << endl;
        cout << " [a] inklusive Mehrwertsteuer " << endl;
        cout << " [b] test " << endl;
        cin >> auswahl;
    
        switch (auswahl)
           {
    
                case ('a'):
                    {
    
                          cout << "inklusive Mehrwertsteuer" << endl;
    
                          {
                            double w;
                            cout<<"Geben Sie den Preis der Ware (inklusive Mehrwertsteuer): ";
                            cin>>w;
                            cout<<"Die Mehrwertsteuer ist: "<<Mehrwertsteuer(w)<<endl;
                          }
    
                          double Mehrwertsteuer(double p)
    
                          {
                            return p*0.19/1.19;
                          }
    
                    } break;
    
                case ('b'):
                    {
    
                            cout << "test ist gut" << endl;
    
                    } break;
    
                default:
                    {
    
                        cout <<"Falsche eingabe" << endl;
    
                    }
               }
    
           cout << "Druecken Sie die Taste 'J' um ins Menü zu kommen" << endl;
           cout << "Nachhause gehts mit der >  #  < Taste, oder so!" << endl;
           cin >> wiederholung;
    
       } while (wiederholung == 'J' || wiederholung == 'j');
    
      return 0;
    }
    

    ||=== WerkzeugSP1, Debug ===|
    /home/alexander/c++/WerkzeugSP1/WerkzeugSP1/main.cpp||In function ‘int main()’:|
    /home/alexander/c++/WerkzeugSP1/WerkzeugSP1/main.cpp|43|error: a function-definition is not allowed here before ‘{’ token|
    ||=== Build finished: 1 errors, 0 warnings (0 minutes, 0 seconds) ===|

    Wo vertragen sich die beiden Programme nicht, was muss wohin ? 😞



  • wie wäre es wenn du mal liest was man dir antwortet und das umsetzt? die funktionsdefinitionen dürfen nicht innerhalb von anderen funktionsdefinitionen sein.



  • So ist es richtig

    main Anfang
    ...
    main Ende
    
    Mehrwertsteuer Anfang
    ...
    Mehrwertsteuer Ende
    

    So geht's nicht:

    main Anfang
    ...
    Mehrwertsteuer Anfang
    ...
    Mehrwertsteuer Ende
    ...
    main Ende
    

    Siehst du den Unterschied?



  • Super es läuft, vielen Dank 🙂

    #include <iostream>
    
    using namespace std;
    double Mehrwertsteuer(double p);
    
    int main ()
    {
        char wiederholung,auswahl;
    
           do
       {
    
        cout << " Bitte waehlen Sie aus: " << endl;
        cout << " [a] Essen " << endl;
        cout << " [b] Getränke " << endl;
        cin >> auswahl;
    
        switch (auswahl)
           {
    
                case ('a'):
                    {
    
                          cout << "Bratkartoffeln" << endl;
    
                          {
        double w;
        cout<<"Geben Sie den Preis der Ware (inklusive Mehrwertsteuer): ";
        cin>>w;
        cout<<"Die Mehrwertsteuer ist: "<<Mehrwertsteuer(w)<<endl;
    }
    
                    } break;
    
                case ('b'):
                    {
    
                            cout << "Kaffee" << endl;
    
                    } break;
    
                default:
                    {
    
                        cout <<"Falsche eingabe" << endl;
    
                    }
               }
    
           cout << "Druecken Sie die Taste 'J' um ins Menü zu kommen" << endl;
           cout << "Nachhause gehts mit der >  #  < Taste, oder so!" << endl;
           cin >> wiederholung;
    
       } while (wiederholung == 'J' || wiederholung == 'j');
    
      return 0;
    }
    
    double Mehrwertsteuer(double p)
    
    {
        return p*0.19/1.19;
    }
    

Log in to reply