小白求助,递归函数求阶乘,输入18以上数值输出了负值。。。
各位大大们好我在写一个递归函数求阶乘的函数的c程序时,n取值在0~17一直没有错误,但是从18开始一直输出负值。。。n取18时,输出的是-898433024,正确结果应为640237373705728000
多谢各位!



程序如下:
程序代码:#include <stdio.h>
int factoriel(int n)
{
int result;
if(n<0)
{
printf("输入错误\n");
return 0;
}
else if(n==0||n==1)
{
result =1;
}
else
{
result = factoriel(n-1)*n;
}
return result;
}
int main()
{
int n = 9;
printf("the factoriel of %d is egale at %d",n,factoriel(n));
return 0;
}







