Problem beim Vergleichen mit einer double zahl

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem beim Vergleichen mit einer double zahl

    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:

    Quellcode

    1. #include <stdio.h>
    2. #include <time.h>
    3. double fibonacci(int n);
    4. main()
    5. {
    6. int i,n,j;
    7. double results[i],a[i],b[i];
    8. i=30;
    9. j=0;
    10. for(n=1; n<=i;n++)
    11. {
    12. clock_t tm1, tm2;
    13. tm1=clock();
    14. results[n] = fibonacci(n);
    15. tm2=clock();
    16. if(n<2)
    17. {
    18. a[n]=0.0;
    19. b[n]=0.0;
    20. }
    21. else
    22. {
    23. a[n]=results[n]/results[n-1];
    24. b[n]=((double)(tm2-tm1)/CLOCKS_PER_SEC);
    25. }
    26. printf("\nn:%i",n);
    27. printf(" Fn: %.0f",results[n]);
    28. printf(" Fn/Fn-1: %.2f",a[n]);
    29. printf(" Dauer: %.2f Sekunden",b[n]);
    30. if(b[n-1]=0.00) <------------- HIER IST DER FEHLER--------->
    31. printf(" n.A.");
    32. else
    33. printf(" TFn / TFn-1: %.2f \n",(b[n]/b[n-1]));
    34. }
    35. getchar();
    36. }
    37. double fibonacci (int n)
    38. {
    39. double result;
    40. if (n > 2)
    41. result = (fibonacci (n-1) + fibonacci (n-2));
    42. else
    43. result = 1;
    44. return result;
    45. }
    Alles anzeigen


    hat etwas mit dem vergleich von doublewerten zu tun oder ?

    hoffe mir kann da einer Helfen
    mfg
    Huuba
  • da hab ich wohl zu langsam getippt :(

    zusätzlich wollte ich noch sagen, dass du die floats der Fibonacci zahlen ja gar nicht zum vergleichen benutzt, also auch keinen einfluss gehabt hätten - du verwendest ja nur die divisonen der timer..

    dennoch würd ich für die fibanoacci zahlen besser nur Integer verwenden
    Kommazahlen in der Fibonnaci Reihe sind doch recht unwahrscheinlich *g*