小白求助,递归函数求阶乘,输入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; }