可以运行但是结果不对,而且每次都输出sin(x)=0.

可以运行但是结果不对,而且每次都输出sin(x)=0.
我觉得是循环的问题但是并没找到,

img

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);
}