[C++] Funktion geht nicht

Discussion in 'Fragen & Antworten' started by Dendox, Sep 25, 2014.

Thread Status:
Not open for further replies.
  1. Dendox

    Dendox Member

    Joined:
    Jan 17, 2014
    Messages:
    38
    Likes Received:
    0
  2. hoschi111

    hoschi111 Active Member Inventar

    Joined:
    Dec 19, 2017
    Messages:
    1,149
    Likes Received:
    8
    Ich bin mir nicht sicher, aber es könnte daran liegen, dass "rechner" als Funktion deklariert ist, aber nichts returnt.
    Ändere "int rechner (int geldbetrag, int kurs, int ergebnis)" zu "void rechner (int geldbetrag, int kurs, int ergebnis)".
     
  3. Cre3per

    Cre3per Addicted Member Inventar

    Joined:
    Oct 22, 2012
    Messages:
    697
    Likes Received:
    2
    Deine rechner Funktion muss einen int returnen
     
  4. Dendox

    Dendox Member

    Joined:
    Jan 17, 2014
    Messages:
    38
    Likes Received:
    0
    Wenn ich jetzt mit 3 den Rechner aufrufe, beendet er das Programm bzw wenn ich system("PAUSE") ranmache, kommt die eingabeaufforderung. mehr nicht
     
  5. hoschi111

    hoschi111 Active Member Inventar

    Joined:
    Dec 19, 2017
    Messages:
    1,149
    Likes Received:
    8
    hast du schon das mit void ausprobiert?
     
  6. Dendox

    Dendox Member

    Joined:
    Jan 17, 2014
    Messages:
    38
    Likes Received:
    0
    Bei ner Void FUnktion hab ich genau das selbe Prob.
     
  7. hoschi111

    hoschi111 Active Member Inventar

    Joined:
    Dec 19, 2017
    Messages:
    1,149
    Likes Received:
    8
    Code:
    // Rechner.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
    //
    
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    void rechner(int geldbetrag, int kurs, int ergebnis);
    
    int main()
    {
        // VARIABLEN
        string stSpielername;
        int nAuswahl = 0;
    
        while (true)
        {
    
            cout << endl;
            cout << " =============" << endl;
            cout << "  SPIEL-MENU" << endl;
            cout << " =============\n" << endl;
    
            cout << " => [1] Spiel starten" << endl;
            cout << " => [2] Anleitung" << endl;
            cout << " => [3] Gramm-Rechner" << endl;
            cout << " => [3] Beenden\n" << endl;
    
            cout << " => AUSWAHL: ";
            cin >> nAuswahl;
    
            if (nAuswahl == 1) // Spiel starten
            {
                system("CLS");
                cout << "Starte Spiel..." << endl;
            }
            else if (nAuswahl == 2) // Anleitung
            {
                system("CLS");
                cout << "Spiel einfach..." << endl;
            }
            else if (nAuswahl == 3) // Rechner
            {
    
                system("CLS");
                int ergebnis;
                int geldbetrag;
                int kurs;
    
                cout << " => Geldbetrag: ";
                cin >> geldbetrag;
                cout << endl;
                cout << " => Kurs: ";
                cin >> kurs;
                cout << endl;
                ergebnis = geldbetrag / kurs;
                cout << " => Du erhaelst " << ergebnis << " Gramm zum Rauchen!" << endl;
                cout << endl;
                system("pause");
                //int rechner(int geldbetrag, int kurs, int ergebnis);
            }
            else if (nAuswahl == 4) // Beenden
            {
                system("CLS");
                cout << "Beenden..." << endl;
            }
            else
            {
                system("CLS");
                cout << "FALSCHE EINGABE!!! ERROR ERROR ERROR!!!" << endl;
            }
    
        }
    
        getchar();
        return 0;
    }
    
    void rechner(int geldbetrag, int kurs, int ergebnis)
    {
        /*cout << " => Geldbetrag: ";
        cin >> geldbetrag;
        cout << endl;
        cout << " => Kurs: ";
        cin >> kurs;
        cout << endl;
        ergebnis = geldbetrag / kurs;
        cout << " => Du erhaelst " << ergebnis << " Gramm zum Rauchen!" << endl;
        cout << endl;
        */
    }
    
     
  8. Dendox

    Dendox Member

    Joined:
    Jan 17, 2014
    Messages:
    38
    Likes Received:
    0
    Danke aber ich wollte ja eigentlich daraufhinaus es mit Funktion hinzubekommen
    Das muss doch gehen?!

    Und die Variablen gelten nur im if?
     
  9. Cre3per

    Cre3per Addicted Member Inventar

    Joined:
    Oct 22, 2012
    Messages:
    697
    Likes Received:
    2
    Beim Aufrufen der Funktion musst du den Typ nicht angeben. Nur wenn du den Rückgabewert speicher willst
    Bsp.
    int blabla = rechner(1, 33, 7);

    blabla wäre hier jedoch immer 0, da rechner immer 0 returned.

    Code:
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int rechner(int geldbetrag, int kurs, int ergebnis);
    
    int main()
    {
    	// VARIABLEN
    	string stSpielername;
    	int nAuswahl = 0;
    
    	while (nAuswahl != 3)
    	{
    
    	cout << endl;
    	cout << " =============" << endl;
    	cout << "  SPIEL-MENU" << endl;
    	cout << " =============\n" << endl;
    
    	cout << " => [1] Spiel starten" << endl;
    	cout << " => [2] Anleitung" << endl;
    	cout << " => [3] Gramm-Rechner" << endl;
    	cout << " => [3] Beenden\n" << endl;
    
    	cout << " => AUSWAHL: ";
    	cin >> nAuswahl;
    
    	if (nAuswahl == 1) // Spiel starten
    	{
    		system("CLS");
    		cout << "Starte Spiel..." << endl;
    	}
    	else if (nAuswahl == 2) // Anleitung
    	{
    		system("CLS");
    		cout << "Spiel einfach..." << endl;
    	}
    	else if (nAuswahl == 3) // Rechner
    	{
    		system("CLS");
    rechner (int geldbetrag, int kurs, int ergebnis);
    	}
    	else if (nAuswahl == 4) // Beenden
    	{
    		system("CLS");
    		cout << "Beenden..." << endl;
    	}
    	else
    	{
    		system("CLS");
    		cout << "FALSCHE EINGABE!!! ERROR ERROR ERROR!!!" << endl;
    	}
    
    	}
    
    	getchar();
    	return 0;
    }
    
    int rechner (int geldbetrag, int kurs, int ergebnis)
    {
    	cout << " => Geldbetrag: ";
    	cin >> geldbetrag;
    	cout << endl;
    	cout << " => Kurs: ";
    	cin >> kurs;
    	cout << endl;
    	ergebnis = geldbetrag / kurs;
    	cout << " => Du erhaelst " << ergebnis << " Gramm zum Rauchen!" << endl;
    	cout << endl;
    return 0;
    }
    
     
  10. Skyfail

    Skyfail Addicted Member Inventar

    Joined:
    Mar 21, 2013
    Messages:
    792
    Likes Received:
    2
    Öh du kannst eine Funktion auch als int deklarieren und nix returnen, daran liegt es aber nicht, dass es nicht geht. Beim Funktionsaufruf darfst du nicht int dazuschreiben, die Argumente werden lediglich im Funktionsrumpf definiert^^
     
  11. Cre3per

    Cre3per Addicted Member Inventar

    Joined:
    Oct 22, 2012
    Messages:
    697
    Likes Received:
    2
    retardo
    [​IMG]
     
Thread Status:
Not open for further replies.
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.