Не выводит на екран ничего. (Язык Си)

 
0
 
C++
ava
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;
}
Kommentare (1)
ava
likehood | 25.12.2016, 13:54 #
Я так понимаю, в предыдущей теме была та же самая задача. Чем тот вариант программы не устроил? Вроде там всё было правильно. Здесь же неверно вычисляется факториал. Точнее сказать, его вообще не нужно вычислять в такого рода задачах. Видимо, поэтому программа и зависает. Я бы вернулся к предыдущей версии программы.

P.S. Код программы лучше вставлять с помощью кнопки "Код", чтобы работала подсветка синтаксиса.
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden