我的代码是:
#include
#include
double sinf(double);
int main(void)
{
double x;
printf("Input a number x and you will get sin(x):\n");
scanf("%lf",&x);
printf("sin%.2lf=%.3lf",x,sinf(x));
return 0;
}
double sinf(double x)
{
double sin,terms;terms=1.0;sin=0.0;
int b,n;
long z;
z=1;
for(n=1;terms>=1e-7;n+=2)
{
if((n+1)/2%2==1)
b=1;
else if ((n+1)/2%2==0)
b=-1;
if(n==1)
z=1;
else z=z*(n-1)*n;
terms=pow(x,n)/z;
sin+=b*terms;
}
return sin;
}
当输入值<3如0.2,0.5时都是正确的,可是当输入类似3,3.14这类数的时候结果却不正确,求解答!
编译器是DEV-C
大神请指出我的代码哪里有问题,不是重新写一个,谢谢!