如下图:
运行结果:6
这段代码的函数fc中,每个if、else if、else分支内都有 return i; 因此函数的返回值是i,我是可以理解的。结果是6,我也是理解的。
但下面这段代码(去掉了else if 和 else分支中的return i 语句), 为什么结果还是6而不是随机数呢?(书上说没return 函数的返回值会是随机数)
将代码奉上:
#include <stdio.h>
int i=1;
int fc(int n)
{
if(n==1)
return i;
else if(n%2==0)
{
fc(n/2);
i++;
// return i;
}
else
{
fc(3*n+1);
i++;
// return i;
}
}
void main()
{
int n,step;
n=5;
step=fc(n);
printf("%d",step);
}