Вычислить значение, используя рекуррентную зависимость - C (СИ)
Формулировка задачи:
Нужно вычислить сумму с заданной точностью
Вот мой код
Считает не так,как хотелось бы. Что не так в коде?
#include <stdio.h>
#include <stdlib.h>
#define EPS 1e-5
int main(void)
{
unsigned int n =1;
double chisl,znam,sum,x;
printf("Enter x");
scanf("%lf",&x);
chisl=1;
znam=1;
sum=0;
do{
chisl*=(-1)*x;
znam*=n;
sum+=chisl/(znam+1);
n++;
}
while(sum>EPS || sum<-EPS);
printf("s=%lf \n",sum);
system("pause");
return 0;
}Решение задачи: «Вычислить значение, используя рекуррентную зависимость»
textual
Листинг программы
int temp;
do{
chisl*=(-1)*x;
znam*=n;
temp=chisl/(znam+1);
sum+=temp;
n++;
}
while(temp>EPS);
Объяснение кода листинга программы
- Объявлены три переменные:
chisl,znamиtemp. - Переменная
chislумножается на -1 и на x. - Переменная
znamумножается на n. - Вычисляется значение переменной
tempпутем деленияchislна суммуznamи 1. - Значение переменной
tempдобавляется к переменнойsum. - Увеличивается значение переменной
nна 1. - Проверяется условие, что значение переменной
tempбольше заданного значения EPS. - Если условие выполняется, то цикл повторяется с шага 1.
- Если условие не выполняется, то цикл завершается.