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

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

請問以下代碼倒序輸出每天所剩桃子數 為什么到1就停止 為什么不繼續輸出第0天第-1天-2天????求教

#include <stdio.h>
int getPeachNumber(int n)
{
??? int num;??? //定義所剩桃子數
??? if(n==10)
??? {
?????? return 1;????? //遞歸結束條件
??? }
??? else
??? {
??????? num = (getPeachNumber(n+1)+1)*2;?? //這里是不應該用遞歸呢?
??????? printf("第%d天所剩桃子%d個\n", n, num); //天數,所剩桃子個數
??? }//就是這個位置? 為什么編譯器到所剩天數1就會自動停止 不繼續0? -1? 或者更????
??? return num;
}
int main()
{
??? int num = getPeachNumber(1);
??? printf("猴子第一天摘了:%d個桃子。\n", num);
??? return 0;
}

正在回答

4 回答

剛剛我又試了一下,確實是我說的那樣,當改為2的時候,就算到了第二天。當然你也可以嘗試看看。

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

街邊七號 提問者

搜嘎..多謝多謝
2017-04-04 回復 有任何疑惑可以回復我~

這里我也看了很久,個人以為是因為getPeachNumber(1).括號里面是1,表示遞歸基數為1,就是倒數的最后一個數,如果是2的話,應該就會最后算到第二天

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

n=10時得到getPeachNumber(n)的值有if條件可知為1,也就是不會繼續向前運行,不會有getPeachNumber(n+1(11))存在

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

街邊七號 提問者

怎樣有if條件知道為1啊 有點轉不過來..
2017-04-04 回復 有任何疑惑可以回復我~

代碼中,在第十天時,輸出return 1,這里的return 1,其實是指不正常結束循環,就好像有返回值的代碼的最后會有return 0(表示正常結束循環),因為題目要求的是求第一天的桃子數,而如果求得是第十天就不符合題目要求,不是要求的結果,所以非正常結束。

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

街邊七號 提問者

不是不是...我不明白是循環部分 為什么程序遞歸循環到第一天的時候就是停止遞歸 它為什么會默認停止循環第0天 第-1天 第-2天.,..我是這個意思
2017-04-04 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

請問以下代碼倒序輸出每天所剩桃子數 為什么到1就停止 為什么不繼續輸出第0天第-1天-2天????求教

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

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

幫助反饋 APP下載

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

公眾號

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