为什么2运行出来了5却不行

img

img

img


我试了一下,到三还可以,四以上都不行


#include<stdio.h>
#include<math.h>
int jc(int n)
{
    int res = 1;
    for(int i = 1;i<=n;i++)
        res *= i;
    return res;
}
int main()
{
    double x,eps;
    scanf("%lf %lf",&x,&eps);
    int flag = -1,n = 0;
    double res = 0;
    while(1)
    {
        double s = (pow(flag,n))*((pow(x,n))/jc(n));

        res = res + s;
        if(fabs(s)<eps)
        {
            break;
        }
        n++;
    }
    printf("%.3lf",res);
    return 0;

}

好像是你的while循环陷入死循环了。

{
int s,m;
m=n;
for(s=1,s<n,s++)
{
m=s*m;
}
return m;
}