Hallo.
Ich habe dieses Beispielprogramm von http://de.wikibooks.org/wiki/C-Programmierung:_Rekur… und dazu leider einige Fragen. die beziehen sich eher auf die Fakultät allgemein.
#include
int fakultaet (int);
int main() {
int eingabe;
printf(„Ganze Zahl eingeben: „);
scanf(“%d“,&eingabe);
printf(„Fakultaet der Zahl: %d\n“,fakultaet(eingabe));
return 0;
}
int fakultaet (int a) {
if (a == 0)
return 1;
else
return (a * fakultaet(a-1));
}
Gerade dieses Unterprogramm verstehe ich nicht wirklich.
Angenommen, ich gebe 5 ein, dann wird ja aufgerufen
fakultaet (int a) mit dem Wert a=5
Dann return (5 * fakultaet(5-1));
Das fakultaet(5-1) = fakultaet(4) wird ja jetzt wieder aufgerufen (das Unterprogramm), so lange, bis a == 0 ist.
Was genau bedeutet jetzt das Return 1? Wird damit das Ergebnis an das Hauptprogramm zurückgegeben? Ansonsten versgtehe ich nicht, an welcher Stelle 120 (das Ergebnis von 5!) an das Hauptprogramm bzw. zur Ausgabe zurückgegeben wird. Kann mir das jemand sagen?