Си. Задача на вычисление разности между суммой ряда и частичной суммой - C (СИ)
Формулировка задачи:
Что-то не так. Помогите с решением
#include <stdio.h>
#include <locale.h>
#include <math.h>
int main()
{
int n, i;
int Sum; // Sum- сумма ряда
float x, b;
double y; // y-частичная сумма
setlocale(LC_ALL, "Russian"); // Использование русских букв
printf("Введите n-целое\n");
scanf_s("%d", &n);
printf("Введите x-десятичное\n");
scanf_s("%f", &x);
printf("Введите b-десятичное\n");
scanf_s("%f", &b);
y=cos(x);
scanf_s("%f", &y);
while(fabs(Sum-y)<b)
{
while(i=0, i<=n, i++)
{
Sum=pow((-1), n)* ((pow(x, 2*n))/(fact(2*n)));
printf("Sum = %f", Sum);
}
}
return 0;
}
Решение задачи: «Си. Задача на вычисление разности между суммой ряда и частичной суммой»
textual
Листинг программы
int n; double x, d; n = 100; x = 0.8; d = 0.00001; double fx = cos(x); double s, si; int i; for (s=0, si = 1, i=1; fabs(s-fx) > d && i < n; i++) { s += si; si = -si*x*x / (2*i*(2*i-1)); } printf("cos(x): %lf, sum = %lf, i: %d\n", fx, s, i);
Объяснение кода листинга программы
- Объявляются переменные:
n
,x
,d
,fx
,s
,si
,i
. - Присваиваются значения переменным:
n
= 100,x
= 0.8,d
= 0.00001,fx
= cos(0.8). - Инициализируются переменные:
s
= 0,si
= 1,i
= 1. - Запускается цикл, который выполняется до тех пор, пока разница между
s
иfx
большеd
иi
меньшеn
. - В каждой итерации цикла происходит следующее:
s
увеличивается наsi
.si
обновляется значением-si*x*x / (2*i*(2*i-1))
.
- После завершения цикла выводится сообщение:
cos(x): %lf, sum = %lf, i: %d\n
, где%lf
- это форматный спецификатор для вывода с плавающей точкой,fx
- значение функции cos(x),s
- сумма ряда,i
- количество итераций.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д