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; }
-
soll das programm die ersten 20 fibonacci-zahlen anzeigen?
-
ja
-
galilio schrieb:
ja
sieh, wie du y in der Funktion fkt behandelst.
Dabei, kann dein Kode nur die einzige Zahl ausdruecken.
-
galilio schrieb:
ja
dann hast da nen haufen fehler.
#include<iostream.h> int fkt(int ); int main() { int b=0;//ok, ich merke mir, b ist 0 fkt(b);//der aufruf tut nix wirksames für die main(). //er berechnet zwar was, aber tut nix mit dmem ergebnis. cout << " b ist also :" << fkt(b);//berechnet fkt(b) und zeigt es an. //also fkt(0). return 0; }
war nicht das gesuchte. es sollten doch alle 20 zahlen angezeigt werden.
dazu muß ne schleife her, um was 20-mal zu machen.#include<iostream.h> int fkt(int); int main() { int b;//ich lege mal b an for(b=1;b<=20;b=b+1)//lass b von 1 bis 20 laufen { cout<<"fkt("<<b<<")="<<fkt(b)<<endl; //oder einfacher erstmal //vout<<b<<" "<<fkt(b)<<endl;//gib b und fkt(b) aus } return 0; }
int fkt(int y) { int x,y1=0,y2=1; for(x=1;x<=20;x++)//die läuft ja immer von 1 bis 20. sollte die nicht //nur bis y laufen? { y = y1+y2; //dann nicht hier y nehmen. einfach ne neue namens tmp //machen. y1=y2; y2=y; } return y1; }
int fkt(int y) { int x,y1=0,y2=1; for(x=1;x<=y;x++)//jetzt geht sie von 1 biy y, läuft also y-mal. { int tmp; tmp = y1+y2; y1=y2; y2=y; } return y1; }