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

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

輸出是九歲看了半天沒找出來哪錯

int cc(n)

{

? ? int age;

? ? if(n==1)

? ? {

? ? ? ? age=10;

? ? }

? ? else

? ? {

? ? ? ? age=cc(n-1)+2;

? ? ? ? return age; ? ? ??

? ? }

}

int main()?

{

? ? int age5=cc(5);

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

return 0;

}


正在回答

4 回答

當你加了括號后,括號內的return age 只屬于else語句中,這樣if語句中就沒有return,即n=1時無返還值,即函數cc(1)不知道等于多少。。。。。沒有括號時,只有age=getage(n-1)+2屬于else語句,return age處于if-else語句之外,執行完if(n=1)或者else語句之后,都會執行return語句,當n=1時,age=10,執行return age,即返還值是10,即cc(1)=10.。。。。。。。

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

哥們,你第一個程序使用遞歸有點問題,當n==1的時候cc(1)沒返回值,系統默認給其賦值為1,所以你的結果就是1+2+2+2+2 = 9的狀態

如果說單純些遞歸函數的話第二種肯定好一些,最起碼他不會造成函數沒有出口

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

大家幫我看下問題是if和else那里不應該有括號,為什么


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

#include<stdio.h>

int getage(n)

{

? ? int age;

? ? if(n==1)

? ? ? ? age=10;

? ? else

? ? ? ? age=getage(n-1)+2;

? ? ? ? return age;

}

int main()

{

? ? int age5=getage(5);

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

return 0;

}


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

舉報

0/150
提交
取消

輸出是九歲看了半天沒找出來哪錯

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

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

幫助反饋 APP下載

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

公眾號

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