C语言初学者请教!编程求sinx近似值,已写程序,求改错!

题目:编写程序,从键盘输入x,利用幂级数展开计算sinx近似值,要求误差小于10^(-6)
sinx=x-x^3/3!+x^5/5!-x^7/7!+…+

我写的程序如下:
#include<stdio.h>
#include<math.h>
main()
{ float x,sinx,sum,s;
int i,j; //j为-1的次方变量
printf("Please inter x: \n");
scanf("%f",&x);
i=1;s=1;j=-1;
sum=0;
sinx=(float)sin(x);
for(i=1;fabs(sum-sinx)<=0.000001;i=i+2)
{ s=s*i;
sum+=(float)pow(j,i+1)*(pow(x,i)/s);
}
printf("sin x=%f\n",sum);

}

编译连接都没错,运行时出来的结果都是0.000000。希望回答者不要给别人写好的程序而是修改我的程序,如果我的程序有重大错误再给其他写好的程序,谢谢!

第1个回答  2011-04-26
S的值求错了...
1!=1
3!=1*2*3;
5!=1*2*3*4*5;
(2*n-1)!=1*2*........*(2*n-1);
相似回答