else這里為什么不能加{} ?
#include <stdio.h>
int getAge(numPeople)
{
??? int age;
??? if(numPeople==1)
??????? age=10;
??? else
??? {
??????? age = getAge(numPeople-1)+2;
??? return age;
??? }
}
int main()
{
??? int fifthAge = getAge(5);
?printf("第5個人的年齡是%d歲", fifthAge);
?return 0;
}
2018-10-29
你搞錯了,能加的,你的語法錯誤是numPeople沒有聲明類型,else語法是對的,順便說一句,你的遞歸函數邏輯有問題,答案是錯的,自己想想看怎么改進
2018-11-02
if這里加個{}和返回值;
如果不加{}這個判斷條件有效無效都會執行age=10;,因為int?函數要有返回值,這里執行到age=10;就會卡住
2018-10-29
哦,你可能試問為什么else可以不加{}是吧,因為if語法可以這么寫,這樣寫默認認為你{}只包含一行,即我圖中紅線劃的區域,第二行編譯器會認為已經結束了,就不會再讀了,最好不要這么寫,這樣的代碼會被人罵的
2018-10-28
因為你這里的return age也包括if中的age,如果你加{},當numPeople==1時沒有返回值