Плохой вывод Тейлор серии sinx

Я пытаюсь написать программу, которая получает от пользователя значение x и печатает sinx, используя ряды Тейлора. но мой вывод плохой. вывод, который я получаю, не является даже числом, это -1.#IND00 независимо от того, что я ввожу.

вот мой код

#include <stdio.h>
#include <conio.h>
void main()
{
    int i;
    double x,sum,last;
    sum=(double)0;
    scanf("%f",&x);
    last=x;
    sum=last;
    for(i=1;i<10;i++)
    {
        last*=(double)(-x*x)/((2*i)*(2*i+1));
        sum+=last;
    }
    printf("%f",sum);
    getch();
}

1 ответ

Решение

Я вижу одну проблему:

scanf("%f",&x);

x двойной, так что вам нужно lт.е. "%lf",

[верно, но не имеет значения, что это неправильная формула sinh, даже если sinh нигде не упоминается в вопросе, отредактировано..]

Другие вопросы по тегам