M
maryfly009
Здравствуйте уважаемые программисты! Помогите пожалуйста найти ошибку в программе.
при x=1
sum = 0.8319
sin = 0.8415
вроде значения приближенно равны
а при x = 5
sum = -64289.9875
sin = -0.9589
существенная разница
подскажите в чём проблема
Код:
//Подключение библиотеки стандартного ввода и вывода
#include<stdio.h>
//Подключение библиотеки математических функций
#include<math.h>
//Функция вычисления факториала
double Factorial(unsigned n)
{
//Объявление и инициализация переменных функции
double p=1.0;
unsigned i = 2;
//Цикл вычисления значения факториала числа
for(;i<=n;i++) p*=(double)i;
//Возврат полученного значения
return p;
}
int main()
{
//Объявление и инициализация
//переменных программы
double sum=0, i=0, t=1, x, eps;
//Приглашение к вводу x
printf("x = ");
//Ввод значения x
scanf("%lf",&x);
//Приглашение к вводу eps
printf("eps = ");
//Ввод значения eps
scanf("%lf",&eps);
//Цикл вычисления суммы ряда с заданной точностью
do
{
t *= pow((-1), i) * ((pow(x, 2*i+1)) / (Factorial(2 * i + 1)));
sum += t;
i++;
}while( fabs(t) >= eps );
//Вывод значения суммы
printf("sum = %5.4lf\n", sum);
//Вывод значения библиотечной функции sin
printf("sin = %5.4lf\n", sin(x));
return 0;
}
при x=1
sum = 0.8319
sin = 0.8415
вроде значения приближенно равны
а при x = 5
sum = -64289.9875
sin = -0.9589
существенная разница
подскажите в чём проблема