Серия Тейлора Расширение cos x и sin x в программировании на C без использования math.h или пользовательских функций

Я работаю над проектом для нашей школы, и нам нужно создать программу, которая вычисляет аппроксимацию ряда разложения Тейлора для sin x и cos x, используя только *stdio.h и БЕЗ определяемых пользователем функций *кроме int main(), всех углов от -180 до 180 с шагом +5. следующий мой код:

#include <stdio.h>
#define PI   3.141592653589
#define NUMBER_OF_TERMS    10

int
main()
{
    int cosctr, sinctr;
    double ctr, radi;
    double cosaccu, costerm, sinaccu, sinterm;

    for (ctr = -180; ctr < 185; ctr = ctr + 5) {
        radi = ctr * PI/180.0;
        cosctr = 1;
        cosaccu = 1;
        costerm = 1;
        sinctr = 2;
        sinaccu = radi;
        sinterm = radi;
        while (cosctr <= 2*NUMBER_OF_TERMS) {
            costerm = costerm*(-1)*(radi*radi)/(cosctr*(cosctr + 1));
            cosaccu = cosaccu + costerm;
            cosctr+=2;
        } do {
            sinterm = sinterm*(-1)*(radi*radi)/(sinctr*(sinctr + 1));
            sinaccu = sinaccu + sinterm;
            sinctr+=2;
        } while (sinctr <= 2*NUMBER_OF_TERMS);
        printf("%.2lf      %.12lf      %.12lf      %.12lf\n", ctr, radi, cosaccu, sinaccu);
    } return 0;
}

приведенный выше код точен для приближения расширения из 15 терминов. однако, если я изменю NUMBER_OF_TERMS, например, на 5 или 10, приближение будет ошибочным.

какие-либо предложения?

* РЕДАКТИРОВАТЬ: позвольте мне уточнить. мне нужно получить приближение 5 терминов, 10 терминов и 15 терминов. я не могу использовать какую-либо другую библиотеку, кроме stdio.h (раньше, создавая этот пост, я не знал, что использование '‹' '>' приведет к пропуску текста). я не могу использовать какие-либо другие функции, кроме int main() (приношу извинения за расплывчатость моего объяснения).


person gabriel_741    schedule 30.10.2015    source источник