Fakultät rekursiv



  • Ich soll ein Programm schreiben, das die Fakultät rekursiv, also über eine Funktion berechnet. Leider weiß ich nicht was an diesem Programm falsch ist.
    Könnte mir mal jemand bitte helfen...Vielen Dank!

    # include <iostream>
    using namespace std;
    
    inline void function (int z, int erg)
    {
    
        for ( int i=1; i!=z+1; i++)
        {
            erg=erg*i;
        }
    
    }
    int main ()
    {
        int z;
        int erg=1;    
        cout <<"Bitte geben Sie eine Zahl ein: "<<endl;
        cin >> z;
    
        function ( z, erg);
    
        cout <<" Das Ergbnis betraegt: "<< erg << endl;
    
        return 0;
    
    }
    


  • Du versuchst da definitiv den zweiten Schritt vor dem ersten zu machen. Erstmal solltest du dich mit ganz normalen Funktionen beschäftigen. Wie funktionieren Argumente und Rückgabe? Für rekursive Funktionen bist du noch nicht bereit.

    (BTW dein Versuch ist nicht rekursiv, und rekursiv heißt auch nicht "mit Funktionen")



  • 1. Das ist genau das Gegenteil von Rekursiv (google mal nach "rekursiv" bzw "iterativ")
    2. Du veränderst den Wert von "erg" nur in der Funktion. Wenn du im Funktionskopf "int erg" deklarierst, kopierst du den Wert von erg nur für die funktion. Versuch mal "int &erg" bzw informier dich über Referenzen



  • okay...Vielen Dank!


Anmelden zum Antworten