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

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

求大佬指點!

當if后面沒有return?age時,輸出的年齡為8歲,加上后年齡為18,求解釋

#include <stdio.h>?

int people(n)

{ ? int age;

? ? if(n==1){age=10;return age;}

? ? else

? ? {age=people(n-1)+2;

? ? ?return age; ?

? ? }

}

int main()?

{

? ? int fifthage=people(5);

printf("第5個人的年齡是%d歲", fifthage);?

return 0;

}


正在回答

2 回答

我并不是很專業,但你這個問題我覺得是這樣的:

people(5) --> people(4) --> people(3) --> people(2) --> people(1)

若沒有return age即表示到達遞歸出口時沒有返回值age=10;

people(1)=0 --> people(2)=0+2 -->......-->people(5)=0+2+2+2+2=8;

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

Gavin諺 提問者

謝謝大神!
2017-11-06 回復 有任何疑惑可以回復我~

遞歸函數

當n-1=1時是最后一次執行代碼應該執行if(n==1){age=10;return age;}的代碼

返回age=10;

最后要加上10;

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

Gavin諺 提問者

謝謝大神!
2017-11-06 回復 有任何疑惑可以回復我~

舉報

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

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

進入課程

求大佬指點!

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

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

幫助反饋 APP下載

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

公眾號

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