前因后果
2015-12-04 19:42
printf语句也在函数getpeachnumber(n)里面,当n等于1,调用自身时,为什么printf语句在这个函数体内也没有执行到printf语句?
如果递推时没有执行到printf语句,为什么回推的时候会执行到printf语句,而不是回推完毕之后,得到第一天的总数,再来执行printf语句
#include <stdio.h>
int getPeachNumber(n)
{
int num; //定义所剩桃子数
if(n==10)
{
return = 1;
}
else
{
num = (getPeachNumber(n+1)+1)*2;
printf("第%d天所剩桃子%d个\n", n, num);
}
return num;
}
int main()
{
int num = getPeachNumber(1);
printf("猴子第一天摘了:%d个桃子。\n", num);
return 0;
}上面的代码总共有22行,假设第一次调用时,没有行的标号为1-1 到 1-22;第二次调用时 2-1 到2-22;依此类推。
代码执行顺序:
1-1 >> 1-11 >>2-1 >>2-11 >>>>>>10-1>>10-6 >>9-12>>9-22>>8-12>>8-22>>>>>>1-12>>1-22
大家一起猜代码
C语言入门
928197 学习 · 21544 问题
相似问题