| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Не выводит на екран ничего. (Язык Си) |
| Автор: marysluva 25.12.2016, 12:52 |
| Составить программу для приближенного вычисления значения функции в точке х с помощью разложения в ряд Тейлора. Найти приближенное значение функции с погрешностью менее 0,0001. Вывести на экран точное значение, найденное приближенное значение и полученную погрешность #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <math.h> int factorial(int n) { return (n < 2) ? 1 : n * factorial(n - 1); } double f(int n, double *x) { double a = 1; a = pow(*x, 2 * n) / factorial(2 * n); return a; } int main() { double Eps = 0.0001, s = 1, x; double previous, current = 0; int n = 1; printf("input x: "); scanf("%lf", &x); do{ previous = current; current = f(n, &x); s += current; n++; } while (fabs(current - previous) > Eps); printf("sum = %f\n", s); return 0; } |
| Автор: likehood 25.12.2016, 13:54 |
| Я так понимаю, в предыдущей теме была та же самая задача. Чем тот вариант программы не устроил? Вроде там всё было правильно. Здесь же неверно вычисляется факториал. Точнее сказать, его вообще не нужно вычислять в такого рода задачах. Видимо, поэтому программа и зависает. Я бы вернулся к предыдущей версии программы. P.S. Код программы лучше вставлять с помощью кнопки "Код", чтобы работала подсветка синтаксиса. |