#include<stdio.h>
void main()
{
int diecheng(int num);
printf("%d",diecheng(5));
}
int diecheng(int num)
{
int result;
if(num==0)
result=1;
else
result=num*diecheng(num-1);
return result;
}
这个是5!=120;
追答呃 实在不好意思!
result=num*diecheng(num-1);这句就是函数递归调用,即diecheng这个函数调用了自己本身。
最初传递的实参为5,到这步的时候调用了diecheng(4),此时result==5*diecheng(4),又返回到定义的函数继续运行,又调用了diecheng(3),此时result==4*diecheng(3),循环调用,最后一次调用了diecheng(0),此时终于得出个数来,result==1。此后依次往回带,返回值1带到diecheng(1),result==2*1,再带到diecheng(2),result==3*2*1,最终带到diecheng(4),result=5*4*3*2*1。