Плохой вывод Тейлор серии 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
нигде не упоминается в вопросе, отредактировано..]