1

I'm working on a project for our school, and we are required to create a program that computes the approximation of the Taylor Expansion Series of sin x and cos x, only using *stdio.h and WITHOUT user-defined functions *other than int main(), of all angles from -180 to 180 in increments of +5. the following is my code:

#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;
}

the code above is accurate for a 15 terms expansion approximation. however, if i change NUMBER_OF_TERMS to, for example, 5 or 10, the approximation is flawed.

any suggestions?

*EDIT: let me clarify. i need to obtain an approximation of 5 terms, 10 terms, and 15 terms. i cannot use any other library outside of stdio.h (i didn't know before while making this post that using '<' '>' would omit the text). i cannot use any other functions outside of int main() (i apologize for the vagueness of my explanation before).

gabriel_741
  • 29
  • 1
  • 5

0 Answers0