warum funktioniert es nicht "blöde Frage "
-
#include<iostream.h> int fkt(int ); int main() { int b=0; fkt(b); cout << " b ist also :" << fkt(b); return 0; } int fkt(int y) { int x,y1=0,y2=1; for(x=1;x<=20;x++) { y = y1+y2; y1=y2; y2=y; } return y1; }
was von hier verlangt ist diese Ausgabe 0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181.
es geht denke ich um die Fibonacci_zahl
-
Ohne jetzt den Algorithmus anzugucken, gibst du ja nur einen Wert zurück. Du berechnest alles in der Funktion, gibst aber nur y1 zurück, was auch als einziger Wert ausgegeben wird.
-
für was übergibst du das y , der wert den du übergibst wird nie benutzt.
du solltest die Ausgabe entweder in der Funktion machen, oder ein array zurückgeben und dann die Elemente des arrays ausgeben.
-
und wie soll ich das bitte in eine Array speichern und dann den komponenten den Array ausgeben ?
-
So ist es fast richtig.
int y1=0,y2=1; for(int i = 0;i<20;i++) { cout << ", " << fkt(y1,y2); } int fkt(int &y1,int& y2) { int y3 = y1 + y2; y1 = y2; y2 = y3; return y1; }
-
irgendwie hab ich das gefühl, ich hab in http://forum.c-plusplus.net/viewtopic.php?t=66840&highlight= mir den falschen thread ausgesucht, um auch mal zu versuchen, das programmierproblem hier zu lösen.