Hallo!
Ich habe folgendes Problem:
Ich soll die fibonacci-reihe berechnen lassen, die quotienten von den jeweils folgenden werten, aber das alles klappt ja, ABER:
ich mache eine zeitmessung, speichere sie in einem double array, von welchem ich später den quotienten ausrechnen will, aber wenn der vorgängerwert 0 ist darf ich den quotienten ja nicht berechnen, aber wenn ich dann den vorgängerwert mit 0 vergleiche übersetzt der das und wirft immer nur falsche zahlen (keine zahlen sondern sowas wie nicht möglich) raus
mein code:
Alles anzeigen
hat etwas mit dem vergleich von doublewerten zu tun oder ?
hoffe mir kann da einer Helfen
mfg
Huuba
Ich habe folgendes Problem:
Ich soll die fibonacci-reihe berechnen lassen, die quotienten von den jeweils folgenden werten, aber das alles klappt ja, ABER:
ich mache eine zeitmessung, speichere sie in einem double array, von welchem ich später den quotienten ausrechnen will, aber wenn der vorgängerwert 0 ist darf ich den quotienten ja nicht berechnen, aber wenn ich dann den vorgängerwert mit 0 vergleiche übersetzt der das und wirft immer nur falsche zahlen (keine zahlen sondern sowas wie nicht möglich) raus
mein code:
Quellcode
- #include <stdio.h>
- #include <time.h>
- double fibonacci(int n);
- main()
- {
- int i,n,j;
- double results[i],a[i],b[i];
- i=30;
- j=0;
- for(n=1; n<=i;n++)
- {
- clock_t tm1, tm2;
- tm1=clock();
- results[n] = fibonacci(n);
- tm2=clock();
- if(n<2)
- {
- a[n]=0.0;
- b[n]=0.0;
- }
- else
- {
- a[n]=results[n]/results[n-1];
- b[n]=((double)(tm2-tm1)/CLOCKS_PER_SEC);
- }
- printf("\nn:%i",n);
- printf(" Fn: %.0f",results[n]);
- printf(" Fn/Fn-1: %.2f",a[n]);
- printf(" Dauer: %.2f Sekunden",b[n]);
- if(b[n-1]=0.00) <------------- HIER IST DER FEHLER--------->
- printf(" n.A.");
- else
- printf(" TFn / TFn-1: %.2f \n",(b[n]/b[n-1]));
- }
- getchar();
- }
- double fibonacci (int n)
- {
- double result;
- if (n > 2)
- result = (fibonacci (n-1) + fibonacci (n-2));
- else
- result = 1;
- return result;
- }
hat etwas mit dem vergleich von doublewerten zu tun oder ?
hoffe mir kann da einer Helfen
mfg
Huuba