太粗心了!!!居然没有写return result;结果是“5的阶乘=-1929224960”
自己居然没有写return result;
还在那儿傻乎乎的找了半天!!!
唉,太太粗心了!!
#include<stdio.h> //自定义阶乘函数 int factorial(int n) { int result; if(n<0) { printf("输入错误!\n"); return 0; } else if(n==0 || n==1) { result = 1; } else { result = factorial(n-1)*n; } } int main() { int n=5; printf("%d的阶乘=%d\n",n,factorial(n)); return 0; }
但是输入int n=不同的值,都有不同的结果输出。绝对值还都是很大的数字!
1的阶乘=-1984603552
2的阶乘=325760192
3的阶乘=977280576
4的阶乘=-385844992
5的阶乘=-1929224960
6的阶乘=1309552128
(以上结果当然不是真正的阶乘!!)
不知道是怎么运行的!
谁能给解释下?