Anwendungsbeispiel zur direkten Rekursion??



  • Kann mir mal einer sagen was funk als ersten Wert annimmt wenn mit scanf eine 5 als
    Ganzzahl eingegeben wird?

    # include <stdio.h>
    float funk (int zahl);
    void main()
    {
    int i;
    printf("\n Eingabe");
    scanf("%d", &i);
    printf("\n \n Ausgabe(%d) = %f",i,funk(i));
    }
    float funk (int zahl)
    {
    float erg=0.0;
    if (zahl>0)
    erg=zahl+funk(zahl/3) / funk(zahl-1);
    else erg=1.0;
    return(erg);
    }



  • dat ist einfach

    eine

    5



  • eine 5.0



  • Hallo Leute,

    wenn Ihr mir bitte noch mal helfen könntet: Ich soll beantworten und begründen, ob das Programm für jede zulässige Eingabe endet?

    Meiner Meinung nach ist der zulässige Eingabebereich von von -32768 bis 32767.
    Für alle eingegebenen Zahlen die negativ sind gibt das Programm 1.000000 aus.
    Wenn ich eine 5 eingebe braucht das Programm ca. 106 Schritte um als erg 5,441816 auszugeben. Für die Eingabe von 32767 ruft die Funktion sich so oft auf das es im Stack einen Überlauf gibt?!. Wieviel Schritte benötigt das Programm theoretisch?

    Schon mal vielen Dank im Voraus.


Anmelden zum Antworten