Дан числовой ряд и некоторое число ε. Найти сумму тех членов ряда, модуль которых больше или равен заданному ε - 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); Если общая сумма не равна нулю, выводится сообщение с результатом.