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

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

為什么num = (getPeachNumber(n+1)+1)*2;這里要把getPeachNumber括號進去?num = getPeachNumber((n+1)+1)*2不行嘛?

#include <stdio.h>

int getPeachNumber(n)

{

? ? int num; ? ?//定義所剩桃子數

? ? if(n==10)

? ? {

? ? ? ?return 1; ? ? ? //遞歸結束條件

? ? }?

? ? else

? ? {

? ? ? ? num = (getPeachNumber(n+1)+1)*2; ? //這里是不應該用遞歸呢?

? ? ? ? printf("第%d天所剩桃子%d個\n", ?, ?); //天數,所剩桃子個數

? ? }

? ? return num;

}

int main()

{

? ? int num = getPeachNumber(1);

? ? printf("猴子第一天摘了:%d個桃子。\n", num);

? ? return 0;

}


正在回答

1 回答

如果不把getPeachNumber括進去就會變成: ?num = getPeachNumber(n + 1) + 1*2,在“= + *”這三個運算符中,*的優先級最高,所以就會變成: num = getPeachNumber(n +1) + 2,而題目的原意是上一級遞推返回的num值加了一之后在乘以二,之后再打印,所以要把getPeachNumber(n + 1) + 1整個括起來作為一個整體。

緊跟函數名的括號內的值才是輸入函數的變量值。num = getPeachNumber((n + 1)+ 1)*2等于num = getPeachNumber(n + 2)*2,就是說輸入getPeachNumber的變量是:n+2。而題目的原意是:n+1。

所學淺顯,如果解釋不夠清楚,請多多包涵,謝謝。


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

舉報

0/150
提交
取消

為什么num = (getPeachNumber(n+1)+1)*2;這里要把getPeachNumber括號進去?num = getPeachNumber((n+1)+1)*2不行嘛?

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

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

幫助反饋 APP下載

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

公眾號

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