Warum wird return hier benötigt
-
Beispiel aus dem Pronix C Kurs:
#include <stdio.h> #include <stdlib.h> int fak(int n) { if (n) return n*fak(n-1); return 1; } main() { printf("%d",fak(5)); return 0; return EXIT_SUCCESS; }
Wieso muss das return 1 in die erste Funktion? Ich weiß das es ohne nicht funktioniert aber warum? Wieso reicht nicht der return der Rekursion?
-
#include <stdio.h> #include <stdlib.h> int fak(int n) { if (n) return n*fak(n-1); return 1; }
Wenn n == 0 ist, dann wird die Rekursion abgebrochen, und 1 zurückgegeben.
-
Die 2 returns hintereinander in der main-Funktion sind zudem völliger Schwachsinn, noch dazu wo die main als void main definiert ist...
-
...und steht auch so nicht in C von A bis Z.
/* fakul.c */ #include <stdio.h> #include <stdlib.h> long fakul(long n) { if(n) return n * fakul(n-1); return 1; } int main(void) { printf("Fakultät von 5 = %ld\n",fakul(5)); printf("Fakultät von 9 = %ld\n",fakul(9)); return EXIT_SUCCESS; }