Hi!
Wollte hier die Fibionacci Zahlen call by reference rekursiv implementieren.
Wo ist denn der Fehler in Zeile 5?
0 int fib (int *n)
1 {
2 if( *n <=1)
3 return *n;
4 else
5 return fib (*(n)-1) + fib (*(n)-2);
6 }
Hi!
Wollte hier die Fibionacci Zahlen call by reference rekursiv implementieren.
Wo ist denn der Fehler in Zeile 5?
0 int fib (int *n)
1 {
2 if( *n <=1)
3 return *n;
4 else
5 return fib (*(n)-1) + fib (*(n)-2);
6 }
Wozu call by reference?
"Call by reference" heißt in C, daß man die Adresse einer Variablen übergibt, mit Hilfe des Adressoperators &.Wo ist denn der Fehler in Zeile 5?
Du müsstest also sowohl *n-1 als auch *n-2 erstmal in Hilfsvariablen speichern, deren Adresse du dann mittels & übergeben kannst, also etwa:
Liebe Grüße,Code:int a = *n - 1; int b = *n - 2; return fib (&a) + fib (&b);
Axel
Hi!
Danke für die Lösung.
Die Funktion mithilfe von Call by reference wollte ich nur zur Übung machen.
Lesezeichen