我把遞歸函數(shù)中的猴子摘桃子問題改成靜態(tài)變量static這里是哪里出了問題了?
#include?<stdio.h> int?getPeachNumber(n) { ????int?num;????//定義所剩桃子數(shù) ????if(n==10) ????{ ???????return?1;???????//遞歸結(jié)束條件 ????}? ????else ????{ ????????static?num=1; ????????num?=(num+1)*2;???//這里是不應(yīng)該用遞歸呢? ????????printf("第%d天所剩桃子%d個(gè)\n",?n,?num);?//天數(shù),所剩桃子個(gè)數(shù) ????} ????return?num; } int?main() { ????int?i; ????for(i=9,i<0,i--) ????{ ????????gerpeachNumber(i); ????} ????printf("猴子第一天摘了:%d個(gè)桃子。\n",?num); ????return?0; }
2016-02-21
#include <stdio.h>
int getnumber(int n) ? ?//定義getnumber是和天數(shù)有關(guān)的函數(shù)
{
? ? static int num=1;
? ? num=(num+1)*2;
? ? printf("第%d天剩%d個(gè)桃子。\n",n,num);
? ? return num;
}
main()
{
? ? int getnumber(int n);
? ? int i,z;
? ? for(i=9;i>0;i--) ?//天數(shù)每天遞減
? ? {
? ? ? ? z=getnumber(i); ?//每次將z重新賦值為函數(shù)getnumber的返回值,得出循環(huán)到九天的桃子數(shù)
? ? }
? ? printf("猴子第一天有%d個(gè)桃子。",z);
?
}
2016-02-21
李同學(xué),你的24行代碼 getnumbei寫錯(cuò)了
2015-10-27
大牛,你看我改了改這段程序問題出在哪里了?
2015-10-27
如上。
2015-10-26
你的想法沒錯(cuò),你是想多次調(diào)用函數(shù)。所以已經(jīng)不是遞歸調(diào)用。
2015-10-26
你為啥要用static,他是一個(gè)全局靜態(tài)變量,存儲(chǔ)在靜態(tài)數(shù)據(jù)區(qū)的變量會(huì)在程序剛開始運(yùn)行時(shí)就完成初始化,也是唯一的一次初始化。而此時(shí)明顯你這個(gè)值是不斷變化的,num?=(num+1)*2;并且你沒有調(diào)用函數(shù),不能算是遞歸。
2015-10-26
你這個(gè)程序的原來目的是啥呢?你要把題告訴我。
2015-10-26
原來是這樣的
2015-10-26
整個(gè)程序都很亂。
2015-10-26
你錯(cuò)誤的地方太多,函數(shù)名,for循環(huán)中不是逗號(hào)是分號(hào)。