Найти сумму ряда - C (СИ) (71163)
Формулировка задачи:
Подскажите, пожалуйста, где я допустил ошибку?
Должна выводиться сумма ряда
,
учитывая, что задана только eps. Ответ должен быть равен 2,718.
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
int n;
float s, temp, eps;
printf("\nVvod ishodnih dannih:\n"); // ввод исходных данных
printf("\nVvedite eps: \n");
scanf("%f", &eps);
temp=1; // первое слагаемое
s=temp; // начальное значение суммы
n=0;
do
{
temp*=1.0/(n+1.0); //Очередное слагаемое
s+=temp;
printf("\n%d %.3f ", n, s);
n++;
}
while(n<=eps);
return(0);
}Решение задачи: «Найти сумму ряда»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
int main() {
int n;
float s, temp, eps;
printf( "\nVvod ishodnih dannih:\n" ); // ввод исходных данных
printf( "\nVvedite eps: \n" );
scanf( "%f", &eps );
temp = 1; // первое слагаемое
s = temp; // начальное значение суммы
n = 1;
do {
temp *= 1.0 / ( n ); //Очередное слагаемое
s += temp;
printf( "\n%d %.5f ", n, s );
++n;
} while ( temp >= eps );
return 0;
}
Объяснение кода листинга программы
- Ввод исходных данных
- Ввод значения eps
- Инициализация переменных: - temp = 1 (первое слагаемое) - s = temp (начальное значение суммы)
- Инициализация переменной n = 1
- Начало цикла do-while:
- Расчет очередного слагаемого: temp *= 1.0 / ( n )
- Добавление очередного слагаемого к сумме: s += temp
- Вывод на экран значения n и суммы s, округленной до 5 знаков после запятой
- Увеличение значения n на 1
- Проверка условия завершения цикла: temp >= eps
- Если условие выполняется, цикл продолжается, иначе цикл завершается
- Возврат значения 0, что означает успешный конец работы программы