return的問題
#include <stdio.h>?
/*?
?* 請使用遞歸函數(shù)完成本題
?* 小編已將正確代碼放在左側(cè)任務(wù)的“不知道怎么辦”里
?* 小編希望各位童鞋獨(dú)立完成哦~
?*/
int pAge(int numPeople)
{
? ? int age;
? ? if(numPeople==1)
? ? ?{
? ? ?age=10;
? ? ?}
? ? else
? ? { ??
? ? ? ?age=pAge(numPeople-1)+2;
? ? }
? ? return age;
}
int main()?
{
? ? int fifthage=pAge(5);
printf("第5個(gè)人的年齡是%d歲", fifthage);?
return 0;
}
1,代碼中的 ruturn age如果我放到了else的大括號(hào)中它的結(jié)果會(huì)改變,我想問一下放在大括號(hào)外和里,結(jié)果會(huì)不一樣的原因。
2,還有一句是,age=pAge(numPeople-1)+2;這句我可以寫成age=(numPeople-1)+2嗎?不可以的話是為什么呢?
2016-01-08
int? pAge(int numPeople)//第一個(gè)int就是說有返回值并且是int類型,沒有返回值的會(huì)寫void。pAge這個(gè)是函數(shù)名,括號(hào)里面的是參數(shù),以及參數(shù)的類型
2016-01-08
第一,如果滿足 if(numPeople==1)就不會(huì)執(zhí)行else,這函數(shù)要求有int型返回值,所以把ruturn age放到else會(huì)報(bào)錯(cuò)。
第二,不能,因?yàn)檫@樣才是調(diào)用函數(shù)pAge(numPeople-1),寫成(numPeople-1)+2意義完全是不一樣的