可以运行但是结果不对,而且每次都输出sin(x)=0.
我觉得是循环的问题但是并没找到,
scanf("%d",&x)改成scanf("%lf",&x)
代码修改如下:
#include<stdio.h>
#include<math.h>
long long fact(int i);
int main()
{
double x,sum,sinx;
int n,count;
n=1;
count=1;
printf("Input x:");
scanf("%lf",&x);
//sinx=x;
sum=0;
for(n=0;;n++)
{
sinx=pow((double)(-1),n)*pow(x,2*n+1)/fact(2*n+1);
count++;
if(fabs(sinx)< 1e-5)
break;
sum=sum+sinx;
}
printf("sin(x) = %lf, count = %d\n",sum,count);
return 0;
}
long long fact(int i)
{
if(i==1)
return 1;
else
return i*fact(i-1);
}