Дан числовой ряд и некоторое число ε. Найти сумму тех членов ряда, модуль которых больше или равен заданному ε - C (СИ)
Формулировка задачи:
Подскажите,пожалуйста,в чем ошибка?
#include<stdio.h> #include<math.h> #include<locale.h> main () {setlocale(LC_ALL,"rus"); double n=1.,sum1=0.,sum2=0.,eps; printf("Введите заданное число:"); scanf("%f",&eps); do {sum1=((n*n+3)*(n*n+3))/(pow(n,5)+pow(log(n),4)); sum2=sum2+sum1; n=n+1;} while (fabs(sum1)>=eps); if (n==2) printf("Членов ряда,модуль которых больше или равен заданному числу,не существует"); else printf("Сумма членов ряда,модуль которых больше или равен заданному числу,равна:%f",sum2);}
Решение задачи: «Дан числовой ряд и некоторое число ε. Найти сумму тех членов ряда, модуль которых больше или равен заданному ε»
textual
Листинг программы
#include<stdio.h> #include<math.h> #include<locale.h> main () {setlocale(LC_ALL,"rus"); double n=1.,sum1=0.,sum2=0.,eps; int x=1; printf("Введите заданное число:"); scanf("%f",&eps); while (x) {sum1=((n*n+3)*(n*n+3))/(pow(n,5)+pow(log(n),4)); if (fabs(sum1)>=eps) sum2=sum2+sum1; else continue; n++;} if (sum2==0) printf("Членов ряда,модуль которых больше или равен заданному числу,не существует"); else printf("Сумма членов ряда,модуль которых больше или равен заданному числу,равна:%f",sum2);}
Объяснение кода листинга программы
В этом коде:
- #include
Включается файл стандартного ввода/вывода, который содержит функции для работы с консолью. - #include
Включается файл математических функций, который содержит функции для работы с числами. - #include
Включается файл локали, который позволяет работать с разными языками и культурами. - main() Функция main() является точкой входа в программу.
- setlocale(LC_ALL,
rus
) Устанавливается русская локаль для работы с числами и датами. - double n=1., sum1=0., sum2=0., eps; Объявляются переменные: n - счетчик для чисел в ряду, sum1 - сумма членов ряда, sum2 - сумма членов ряда, удовлетворяющих условию, eps - заданное число.
- int x=1; Объявляется переменная x - счетчик для проверки условия.
- printf(
Введите заданное число:
); Выводится запрос на ввод заданного числа. - scanf(
%f
, &eps); Считывается введенное число в переменную eps. - while (x) Начинается цикл, который будет выполняться до тех пор, пока условие истинно.
- *sum1=((nn+3)(nn+3))/(pow(n,5)+pow(log(n),4));** Вычисляется сумма члена ряда.
- if (fabs(sum1)>=eps) Проверяется условие, если модуль суммы больше или равен заданному числу.
- sum2=sum2+sum1; Если условие истинно, то сумма члена ряда добавляется к общей сумме.
- n++; Увеличивается значение переменной n.
- if (sum2==0) printf(
Членов ряда, модуль которых больше или равен заданному числу, не существует
); Если общая сумма равна нулю, выводится сообщение о том, что не существует членов ряда, удовлетворяющих условию. - else printf(
Сумма членов ряда, модуль которых больше или равен заданному числу, равна:%f
, sum2); Если общая сумма не равна нулю, выводится сообщение с результатом.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д