
Другие языки программирования и технологии
Бесконечная сумма на языке C
Никак не могу разобраться с бесконечной суммой.У меня есть задание:.Нужен код программы, чтобы разбираться по какому-то материалу, а не пустому листу.

Дерзайте. Гарантий того, что программа верна, не даю.
#include <math.h>
#include <stdio.h>
#define e 1e-5 // точность
int main() {
double x; // заданный Х
int k = 0; // K
double f = 1; // факториал
double si; // очередной член последовательности
double s = 0; // сумма
printf("x? "); // запрашиваем
scanf("%lf", &x); // и читаем со стандартного ввода X
do { // цикл подсчета суммы
++k; // добавляем единицу к K
f *= k; // считаем факториал
si = (x - k) / f; // считаем очередной член последовательности
s += si; // считаем общую сумму
printf("%f %f\n", si, s);
} while (x - k == 0 || fabs(si) > e); // пока очередной член последовательности
// больше заданной точности, (x - k) -- чтобы
// исключить нулевые члены суммы
printf("sum: %f\n", s); // вывод результата
return 0;
}
#include <math.h>
#include <stdio.h>
#define e 1e-5 // точность
int main() {
double x; // заданный Х
int k = 0; // K
double f = 1; // факториал
double si; // очередной член последовательности
double s = 0; // сумма
printf("x? "); // запрашиваем
scanf("%lf", &x); // и читаем со стандартного ввода X
do { // цикл подсчета суммы
++k; // добавляем единицу к K
f *= k; // считаем факториал
si = (x - k) / f; // считаем очередной член последовательности
s += si; // считаем общую сумму
printf("%f %f\n", si, s);
} while (x - k == 0 || fabs(si) > e); // пока очередной член последовательности
// больше заданной точности, (x - k) -- чтобы
// исключить нулевые члены суммы
printf("sum: %f\n", s); // вывод результата
return 0;
}
Да просто создай цикл WHILE с проверкой.
Если при очередной итерации цикла значение (x - k) / k! стало меньше 0.00001, то дальше считать не имеет смысла и выходишь из цикла. Как-то так:
real s = 0; // сумма
int k = 1;
int kk = 1;
real a;
do
{
a = (x - k) / kk;
k++;
kk *= k;
s += a;
}
while (a > 0.00001)
Если при очередной итерации цикла значение (x - k) / k! стало меньше 0.00001, то дальше считать не имеет смысла и выходишь из цикла. Как-то так:
real s = 0; // сумма
int k = 1;
int kk = 1;
real a;
do
{
a = (x - k) / kk;
k++;
kk *= k;
s += a;
}
while (a > 0.00001)
Похожие вопросы
- Вопрос для тех кто знает точный ответ, язык C про функции все подробности вопроса внутри...
- Вопрос актуальности языка C++, расхождение источников. Мне нужна достоверная инфа на это счет.
- Я так понимаю, что бы создать графический интерфейс, например игру, недостаточно языка c++ ?
- Вопрос по изучению языка C++?
- Равны ли по мощности, гибкости языки C# и C++. Равны ли по мощности, гибкости языки C# и C++ или какой то из них мощнее?
- Программирование! По языку C#!
- Вычисление суммы ряда на c++
- язык c++
- Забавная задача: сумма цифр на C без ветвления
- Можно ли начинать изучать язык C++,если до этого никогда не программировал?