При расчете суммы ряда выдает разные значения - C (СИ)
Формулировка задачи:
#include<stdio.h>
int fact(int n)
{
if (n<=1) return 1;
else return n*fact(n-1);
}
double f(int i)
{
return pow(-2,i)/fact(i);
}
int main()
{
int a, b, g;
float exp;
double pre, cur;
double sum = 0;
int i=1;
printf("\tВас приветствует программа 'РЭП'\nВ данной программе реализовано несколько функций:\n- Вычисление факториала;\n- Нахождение суммы фиксированного ряда с возможнстью задания точности;\nДля того, чтобы вычислить факториал числа введите 1\nЕсли хотите найти сумму ряда введите любое значение\n");
scanf("%d", &g);
switch (g)
{
case 1:
printf("Введите число\n");
printf("a = ");
scanf("%d", &a);
b=fact(a);
printf("%d! = %d\n", a, b);
break;
default:
printf("Введите точность вычислений:\nexp = ");
scanf("%f", &exp);
cur=f(i);
sum+=cur;
i++;
do
{
pre=cur;
cur=f(i);
sum+=cur;
i++;
}
while (abs(cur-pre)>exp);
printf("Сумма ряда равняется:\nS=%.0f\n", sum);
}
printf("С вами был 'РЭП' версии 1.0\nУдачи!");
return 0;
//РЭП - ряд это просто(нет)
}Решение задачи: «При расчете суммы ряда выдает разные значения»
textual
Листинг программы
printf("Сумма ряда равняется:\nS=%.4lf\n", sum);
Объяснение кода листинга программы
Код вычисляет сумму элементов ряда и выводит результат на экран. Список элементов и их значений, которые участвуют в вычислении суммы, может быть оформлен следующим образом:
- Элементы ряда:
a1,a2,a3, ...,an - Начальное значение суммы:
sum = 0.0 - Вычисленное значение суммы:
SПосле вычисления суммы, код выводит результат на экран с помощью функции printf. Формат вывода числа с плавающей точкой до 4 знаков после запятой указывается с помощью спецификатора формата %.4lf. Итоговый вывод на экран выглядит следующим образом: Сумма ряда равняется: S=0.0000 где 0.0000 - это значение переменной sum, которая инициализирована как 0.0 перед циклом вычислений.