1樓:踽踽獨行
8這是遞迴呼叫函式!
函式返回值通過指標s返回!
6開始,函式返回值為
f(6,*)=f(5,*)+f(4,*)
f(5,*)=f(4,*)+f(3,*)
f(4,*)=f(3,*)+f(2,*)
f(3,*)=f(2,*)+f(1,*)
f(2,*)=1;這時候返回,不回再繼續
答f(1,*)=1;這時候返回,不再繼續
f(6,*)=5*f(2,*)+3*f(1,*)=5+3=8錯誤之處://應為||
判斷了==1,==2,如果剛開始n是0或負值那麼函式永遠不會返回類似於死迴圈!
2樓:陳宗權
這個程式copy
實際是在計算斐波那契數列:
1,1,2,3,5,8,13,21,……
演算法:第1第2兩項是1,以後每一項是前兩項之和。
fun(int n, int* s)就是計算斐波那契數列第n項的值儲存在地址為s的變數中。
所以fun(6,&x)是計算第6項的值(也就是8)儲存在x中。
而fun(n-1,&f1)是計算第n-1項的值儲存在f1中,fun(n-2,&f2)是計算第n-2項的值儲存在f2中。
3樓:匿名使用者
您好,看c程式。首先看主函式,我們一步步來開:
1,定義整形變數x,,以x的地址為專引數。呼叫函式fun ,我們屬就帶著x來看fun
2,再fun函式內 fun(int n,int *s),,,當我們呼叫的時候,這個時候n=6,s是x的地址。
3,執行fun函式,首先這個if不執行。執行else,即fun(5,&f1)...
就這樣一步步執行。。謝謝!
關於c語言的一道題,關於C語言的一道題
第一個是把整型資料格式輸出為浮點型資料,這個主要還是看float的小數點有效位數,我也不太記得了,6 7位,是哪一個我也不記得了。第二個是把浮點型資料格式輸出為整形,就會把小數點部分省略,記住這裡不是數學上的四捨五入,不管多大的小數部分都會扔掉。輸出是什麼你應該知道的,執行 就ok 第一句自不必多說...
c語言題目,求高手,一道c語言題,求高手解釋下這題!
3.程式設計判斷m是否為素數,已知0和1不是素數。include int isprime int m main 4.輸入一行字元,統計其中的英文字元 數字字元 空格及其它字元的個數 include include define arr size 80 main printf english char...
關於C語言的一道題,請問關於C語言的一道題
include double cube double num int main void double cube double num 輸出結果是 1 3 20 2 3 20 3 20 3 4 3 20因為你用的是值傳遞所以在子函式中是不會改變實參順序的 這個程式的書寫有錯誤,在 void swap...