不知道哪里不对,当我输入200000000时结果是11,当我输入2000000000直接跳到20了。

img


#include
int fun(double m)
{
double result=1,q;
for(q=1;q<=m;q++) 
{
    result=result*q;
}
return result;
}
int main()
{
    int n;
    double sum=0,i,result=0;
    scanf("%d",&n);
    for(i=1;i<=20;i++)
    {
        sum=sum+fun(i);
        if(sumelse
        break;
    }
    printf("m<=%g",result);
    return 0;
}

题目说了n是int范围内,你定义的n也是int型,那你好好看看你输入的n是int型能存下的吗,没溢出吗