C语言求sin(x)的近似值

问题描述:

C语言求sin(x)的近似值
sin(X)=x-(x^3/3!)+(x^5/5!)-(x^7/7!)+.+(-1)^n[x^(2n+1)/(2n+1)!]求用C语言写代码,精度为10的-5次方.我写的代码如下:#include <stdio.h>#include <math.h>void main(){    int a,b,n,A,temp;    float eps,c,d,sin;    temp=-1;    sin=0.0; c=1.0;    n=0;    eps=10e-6;    scanf("%f",&d);    do    {        n++;        b=2*n-1;  A=1;     for(a=1;a<=b;a++)     {      A=A*a;     }     temp=-temp;        c=pow(d,b);        sin=sin+temp*c/A;    }while( fabs(c/A)>=eps);    printf("%f\n",sin);    }用Debug检查发现在a=17之后就会出现数据溢出现象,也就是大概在|x|>3时结果就会出错,请问该如何改进算法?或者该怎样写代码?呵呵,命名上有些不足,读代码有些累,
1个回答 分类:综合 2014-10-17

问题解答:

我来补答
把A换成double 或者 float 都行
 
 
展开全文阅读
剩余:2000