#include<stdio.h>
#include<stdlib.h>
//用递归函数来计算N的阶乘
double factorial(int n)
{
double result;
if(n<0)
{
printf("输入错误\n");
}
else if(n==1 ||n==0)
{
result=1;
}
else
{
result=factorial(n-1)*n; //n=5 5-1=4 4*5=20 接下来该怎么算呢 麻烦前辈指点一下!
}
return result;
}
int main ()
{
double n ;
scanf("%lf",&n);
printf("%lf的阶乘=%g\n",n,factorial(n));
printf("%lf的阶乘=%lf\n",n,factorial(n));
return 0;
}当n=5时由主函数一直调用它本身 结果就是result=factorial(4)*5 此时再次调用了factorial这个函数 结果返回result=factorial(3)*4*5 后面继续调用 结果就是1*2*3*4*5
result=factorial(n-1)*n这里就是你又回到factorial这个函数啊