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;
    }
    

Anmelden zum Antworten