菲尔活该
2015-11-20 00:36
#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;
}
为什么递归结束条件“return 1"换做 ”num=1"也同样可以执行呢?请大神指教~
return 1会立即返回1,
改成num = 1,程序则会执行函数末尾的return num,其中num=1;
实际效果一样,都是返回1
C语言入门
926024 学习 · 20793 问题
相似问题