亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

求大神幫忙看一下

#include <stdio.h>?

int getPeopleAge(int n)

{

? ? int age; ? ?//定義年齡

? ? if(n == 1)

? ? {

? ? ? ? return 10; ? //遞歸結束條件

? ? }

? ? else

? ? {

? ? ? ? age = getPeopleAge(n-1)+2; //遞歸

? ? ? ? printf("第%d個人%d歲\n",n,age); //第幾個人,歲數

? ? ? ? return age;

? ? }

}

int main()?

{

? ? int age = getPeopleAge(5);

printf("第5個人的年齡是%d歲。\n", age);?

return 0;

}


為什么在 “age = getPeopleAge(n-1)+2; //遞歸” 中,不能是“age = getPeopleAge(n)+2;”?



正在回答

2 回答

那你的遞歸意義何在呢?死循環?

0 回復 有任何疑惑可以回復我~
#1

qq_慕娘6287402 提問者

大佬能解釋清楚嘛 我就是不懂括號里面n 和 n-1的區別
2019-09-20 回復 有任何疑惑可以回復我~
#2

小小疾飛 回復 qq_慕娘6287402 提問者

好 在age = getPeopleAge(n-1)+2;這一語句中。getPeopleAge(n-1)是調用了 getPeopleAge()這一函數,我們知道自定義函數是有參數這一概念的,那么n-1就是參數。遞歸,簡單來說就是函數自己調用自己,那么不可能無限制調用,在此題中結束條件就是n==1的時候,就不在調用了,懂了沒?
2019-09-20 回復 有任何疑惑可以回復我~
#3

qq_慕娘6287402 提問者 回復 小小疾飛

明白了 謝謝
2019-09-24 回復 有任何疑惑可以回復我~

前面那個輸出應該不用啊`

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

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926904    人
  • 解答問題       21532    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

求大神幫忙看一下

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號