Вычислить значение, используя рекуррентную зависимость - 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.
- Если условие не выполняется, то цикл завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д