为了账号安全,请及时绑定邮箱和手机立即绑定

找不到代码中递归的结束语句,仍然能通过是为什么

#include <stdio.h> 

int people(int n)


{int year;

    if(n==1){

        year=10;

    }

else{

    year=people(n-1)+2;}


return year;


}





int main() 

{

   int five=people(5);

printf("第5个人的年龄是%d岁", five); 

return 0;

}


正在回答

2 回答

从代码原理上来讲,你的条件结束语句就是n==1;为什么这样说?因为,在n!=1的时候程序会一直执行函数的调用(递归),在当if语句满足条件时,else中不会执行,这个时候递归也就结束了。并返回一个year。

0 回复 有任何疑惑可以回复我~

在else中,year=people(n—1)+2在n不等于1时,会不断去调本身这个函数,直到符合n==1,就直接执行year=10

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

找不到代码中递归的结束语句,仍然能通过是为什么

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信