Некорректный результат. Сумма сходящегося ряда с заданной точностью - C (СИ)
Формулировка задачи:
#include <stdio.h> #include <math.h> int main() { int s, c; //s - знак. c - знаменатель. double y, x, a, eps; //а - очередной член. eps - погрешность. do { printf("Input x, e: "); scanf("%lf%lf",&x,&eps); } while (x<0||x>1||eps>1); s=1; y=1; c=3; a=s*(x-1)/c; while (fabs(a)>eps) { y=y+a; s=s*(-1); a=s*(c-1)/(c+3)*(x-1); c=c+3; } printf("y = %lf;",y); return 0; }
Решение задачи: «Некорректный результат. Сумма сходящегося ряда с заданной точностью»
#include <math.h> #include <stdio.h> int main() { int c; // c - индекс. double y, x, a, eps; //а - очередной член. eps - погрешность. do { printf("Input x, e: "); scanf("%lf%lf",&x,&eps); } while (x<0||x>1||eps>1); c=3; a=(x-1.)/c; y=1+a; while (fabs(a)>eps) { a*=-(x-1)*(c-1)/(c+3); y+=a; c+=3; } printf("y = %lf\n",y); return 0; }
Объяснение кода листинга программы
В этом коде выполняется вычисление суммы сходящегося ряда с заданной точностью. Пользователю предлагается ввести значение x и точность e. После этого, в цикле do-while, происходит проверка корректности введённых значений. Если x меньше нуля или больше единицы, а e больше единицы, то пользователю предлагается ввести корректные значения. Далее, инициализируются переменные c, a и y. Переменная c получает значение 3, a рассчитывается как (x-1)/c, а y как 1+a. Затем, в цикле while, происходит вычисление следующего члена ряда a, а затем значение y увеличивается на a. Переменная c увеличивается на 3, а переменная a пересчитывается как (x-1)*(c-1)/(c+3). Цикл продолжается до тех пор, пока абсолютное значение a не станет меньше заданной точности e. В конце программы выводится значение y и программа возвращает 0, сигнализируя о успешном завершении работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д