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
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/11 13:42:51
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
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时结果就会出错,请问该如何改进算法?或者该怎样写代码?呵呵,命名上有些不足,读代码有些累,
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
把A换成double 或者 float 都行