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

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

函數 getWordNumber為什么在n-1=1是就不再運行了

#include <stdio.h>

/* 定義獲取單詞數量的函數 */

int getWordNumber(int n)

{? ?

? ? if(n == 1)

? ? {

? ? ? ? return 1;? ? //第一天只會1個單詞

? ? }

? ? else{

? ? ? ? return getWordNumber(n-1)+n;? ? ? ?//到第天會的單詞數量

? ? }

}

int main()

{

? ? int num = getWordNumber(10);? ? ?//獲取會了的單詞數量

? ? printf("小明第10天記了:%d個單詞。\n", num);

? ? return 0;

}


正在回答

1 回答

首先,return是結束這個循環,將值輸入到主函數 ? ? ? ?? (下文中getWordNumber用GWN代表)

這個GWN函數有兩種結束循壞的方式,一種是n等于1時,符合If語句的條件,輸出return 1,說明停止循壞并且將1這個值輸入到主函數,然后這里主函數就會輸出該值(num=1),一種是n不等于1時,不符合If語句的條件,就會輸出else語句的return,而這個return語句后面還有一個GWN(n-1)的函數,這個跟著一起被輸入主函數,但此時這個循環并沒結束,會繼續被自身調用,這就是遞歸函數,比如,下一個GWN(9),那么這個GWN(9)代表在getWordNumber這個函數中在n=9的情況下繼續做循環,最后輸出的是GWN(8)+9+10(備注:這里的10是上一次循環中GWN(10-1)+10的10),同理,接下來的GWN(8)也會繼續按照這樣循環,最后到GWN(n-1)中的n-1=1時,這時就符合if語句的條件,就會輸出return 1,這時才代表在else return后的這個GWN(n-1)函數才完全停止循環,而這時在主函數輸出的是num=[GWN(1)=1]+2+3+4+5+6+7+8+9=55

本人也是菜鳥一枚,初次作答,以上是我的個人的理解,如有不對,還望大神指正。

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

是7661170

num=[GWN(1)=1]+2+3+4+5+6+7+8+9=45 不是55
2020-02-10 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

函數 getWordNumber為什么在n-1=1是就不再運行了

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

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

幫助反饋 APP下載

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

公眾號

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