Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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. Код программы лучше вставлять с помощью кнопки "Код", чтобы работала подсветка синтаксиса.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)