Proste zadanie pętlowe w C

0

Witam, dostałem zadania polegające na wykonaniu programu majacego liczyc cos takiego:
x-x^3^/3*1!+x^5^/5*2!-x^7^/7*3!+... (fixed - msm)
Punktem przerwania petli ma byc dokladnosc wpisana na poczatku programu przez uzytkownika, x nalezy <0;1>

Kod:

#include <stdio.h>
#include <math.h>
#include <float.h>

int main()
{
    double x, dokladnosc;
    printf("Podaj wartosc x nalezacego <0;1> i dokladnosc (wieksza niz DBL_EPSILON)\n");
    scanf("%lf %lf", &x, &dokladnosc);
    if ((x<0) || (x>1))
    {
        printf("Zle dane");
        return 1;
    }
    if (x==0)
    {
        printf("Wartosc calki wynosi 0");
        return 0;
    }
    else
    {
        double a=x, wynik=x;
        int i=1;
        do
        {
            a=((-a*x*x)/(i*((2*i+1)/(2*i-1))));
            wynik=wynik+a;
            i+=1;
        }
        while (fabs(a)>dokladnosc);
        printf ("%.16lf", wynik);
        return 0;
    }
}

Lecz niestety wyniki uzyskiwane recznie nie zgadzaja sie z liczonymi w programie, prosze o pomoc w znalezieniu bledu.
! - oznacza oczywiscie silnie, ^ potege, zakazane jest niestety uzycie pow czy zadeklarowanie f. liczacej silnie, przez co zmuszony jestem zmienic swoje rozwiazane, lecz nie moge znalezc w nim bledu.
Pozdrawiam

0

x - ( x3 przez 31!) + (x5 przez 52!) - x7 przez 7*3!)+...
x do trzeciej podzielic przez 3 raz 1 silnia i analogicznie (dziwne kodowanie na forum ^^)

0

a=(-a*x*x)*(2*i-1)/(2*i*i+i);

0

Widze ze dobre wyniki mi wychodza choc jeszcze nie rozumiem dlaczego to postaram sie przeanalizowac, dzieki serdeczne za podpowiedz dotyczaca zadania + dzialania systemu forum.
Pozdrawiam i jeszcze raz dzięki.

0

Bo w C/C++ 3/10 == 0

0

Nie do końca rozumiem owe wytłumaczenie, czy istnieje coś co wyjaśnia tę sprawę dla nowicjuszy? Jestem pewny swych brakow elementarych w znajmosci jezyka, gdyż zaczynam programować.

1

Ten fragment twojego kodu: ((2*i+1)/(2*i-1)) zawsze dawał w wyniku równo 1 bo zachodzi dzielenie liczb całkowitych.

0

Rozumiem teraz swoj blad, dzieki wielkie, pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1