求教大神,為什么 return result ; 放在else語(yǔ)句里面結(jié)果會(huì)出錯(cuò)?
沒(méi)看答案,自己寫(xiě)的,如果把return result ; 放在else語(yǔ)句外,可以正確算出答案,為什么放在里面就出錯(cuò)?
求大神指教!謝謝!
#include <stdio.h>
/* 定義獲取單詞數(shù)量的函數(shù) */
int getWordNumber(int n)
{ ??
? ? int result;
? ? if(n == 1)
? ? {
? ? ? ? result=1; ? ?//第一天只會(huì)1個(gè)單詞
? ? }
? ? else{
? ? ? ? result=getWordNumber(n-1)+n;
? ? ? ? ? ? ? ?//到第天會(huì)的單詞數(shù)量
? ? ? ? return result ; ? ? ??
? ? }
}
int main()
{
? ? int n = 10; ? ? //獲取會(huì)了的單詞數(shù)量
? ? printf("小明第10天記了:%d個(gè)單詞。\n", getWordNumber(n));
? ? return 0;
}
2015-08-04
你的if(n==1 )這兒必須有返回值 后面的運(yùn)算都是 n從1到10運(yùn)算 首先就要知道第一天級(jí)多少個(gè)單詞 ?
2015-08-04
#include <stdio.h>
/* 定義獲取單詞數(shù)量的函數(shù) */
int getWordNumber(int n)
{ ??
? ? int result;
? ? if(n == 1)
? ? {
? ? ? ? result=1;
? ? ? ? return result;//第一天只會(huì)1個(gè)單詞
? ? }
? ? else
? ? {
? ? ? ? result=getWordNumber(n-1)+n;
? ? ? ? ? ? ? ?//到第天會(huì)的單詞數(shù)量
? ? ? ? return result ; ? ? ??
? ? }
}
int main()
{
? ? int n = 10; ? ? //獲取會(huì)了的單詞數(shù)量
? ? printf("小明第10天記了:%d個(gè)單詞。\n", getWordNumber(n));
? ? return 0;
}
這個(gè)問(wèn)題我也搞不懂但是你if(n ==1) 這兒沒(méi)有return 有的話(huà)就正確 ?我也知道怎么回事
2015-07-10
小明第10天記了:55個(gè)單詞
我試了,得到的是正確答案
2015-07-10
因?yàn)閞eturn是返回當(dāng)前函數(shù)的結(jié)果,如果你放在if或者else里面,如果符合條件,代碼只會(huì)執(zhí)行到當(dāng)前塊,不會(huì)再繼續(xù)往下判斷...放在else后面,是整個(gè)函數(shù)執(zhí)行完之后,才返回這個(gè)函數(shù)的最終結(jié)果。本人之前自學(xué)過(guò)一點(diǎn),好久沒(méi)接觸了。如果有不對(duì)的地方還請(qǐng)見(jiàn)諒。謝謝