我的C程序为什么结果会是6啊!递归调用应该只是返回给倒数第二个调用的函数才对啊!其他的递归调用函数应该是没有接收到返回值才对啊!
#include <stdio.h>
int i = 1;
int fc(int n){
if(n == 1)
return i;
else if(n % 2 == 0) {
fc(n / 2);
i++;
}
else {
fc(3 * n + 1);
i++;
}
}
int main() {
int n, step;
n = 5;
step = fc(n);
printf("\n%d \n", step);
printf("\n%d", i);
return 0;
}