輸出是九歲看了半天沒找出來哪錯(cuò)
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個(gè)人的年齡是%d歲", age5);?
return 0;
}
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個(gè)人的年齡是%d歲", age5);?
return 0;
}
2015-09-24
舉報(bào)
2015-10-10
當(dāng)你加了括號(hào)后,括號(hào)內(nèi)的return age 只屬于else語句中,這樣if語句中就沒有return,即n=1時(shí)無返還值,即函數(shù)cc(1)不知道等于多少。。。。。沒有括號(hào)時(shí),只有age=getage(n-1)+2屬于else語句,return age處于if-else語句之外,執(zhí)行完if(n=1)或者else語句之后,都會(huì)執(zhí)行return語句,當(dāng)n=1時(shí),age=10,執(zhí)行return age,即返還值是10,即cc(1)=10.。。。。。。。
2015-09-24
哥們,你第一個(gè)程序使用遞歸有點(diǎn)問題,當(dāng)n==1的時(shí)候cc(1)沒返回值,系統(tǒng)默認(rèn)給其賦值為1,所以你的結(jié)果就是1+2+2+2+2 = 9的狀態(tài)
如果說單純些遞歸函數(shù)的話第二種肯定好一些,最起碼他不會(huì)造成函數(shù)沒有出口
2015-09-24
大家?guī)臀铱聪聠栴}是if和else那里不應(yīng)該有括號(hào),為什么
2015-09-24
#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個(gè)人的年齡是%d歲", age5);
return 0;
}