1樓:forever_小毅
在main中,定義了陣列a
下標 0 1 2 3 4 5 6 7 8
值 8 2 9 1 3 6 4 7 5
求f(a,9):
f(a,9)= max(f(a,n-1),a[n-1]) = max(f(a,8),5),由於不知道哪個大,所以需要求f(a,8)
f(a,8) = max(f(a,7),7)
f(a,7) = max(f(a,6),4)
...f(a,1) = a[0] 因為n > 1 == false,所以執行後面的return a[0]
接著一直回傳回去,得到答案:9
實際上可以從另一方面看,f(a,9)=max(f(a,8),5),它的作用就是取f(a,8)和當前值中最大的那個
前面也同理,也就是說,f(a,9)得到的是下標0->8中,數字最大的那個值
如無疑問煩請採納
2樓:岔路程式緣
這個程式是遞迴查詢陣列中的最大元素。
等於本例,返回最大元素9,即選項b。
看一下f函式的構造:它一共有6句,整體是一個if……else……結構。
分析一下運**況,由於沒呼叫一次f,定義一個不同的變數t,為防止混淆,我們將按順序稱之為t1、t2……
主函式列印語句呼叫f(a,9)①
第一次進入f函式,n=9>1,定義變數1,再呼叫t1=f(a,8)②
第二次進入f函式,n=8>1,定義變數t2,再呼叫t2=f(a,7)③
……第八次 進入f函式,n=2>1,定義變數t8,再呼叫t8=f(a,1)④
第9次 進入f函式,n=1>1不成立,指向else,返回a[0],即元素8。
返回④,即t8=8,往下一步程式:計算並返回t8>a[1]?t8:a[1]=8>2?8:2=8(返回8與2之大數),往上返回。每一次都是返回比較大的數。
……當然,f(a,7)返回的是9。回到③,t2=9,下一步計算t2>a[7]?因t2=9,a[7]=7,返回較大的9。
程式回到②,t1=9,下一步比較t1與a[8](=5)的大小,顯然返回較大的9。此時就要把9返回主函式①處了。
回到①處,程式獲得f(a,9)的值9,並列印。
3樓:左冷禪
不知道你對通項公式還記得多少,遞迴其實就是在定義通向公式。
由題目可知:
f(a, 0) = a[0] = 8
f(a, n) = f(a, n -1) > a[n - 1] ? f(a, n - 1) : a[n -1];
推算n=1..9的f(a, n)值:
f(a, 1) = f(a, 0) > a[0] ? f(a, 0) : a[0] = 8
f(a, 2) = f(a, 1) > a[1] ? f(a, 1) :a[1] = 8
f(a, 3) = f(a, 2) > a[2] ? f(a, 2) : a[2] = 9
f(a, 4) = f(a, 3) > a[3] ? f(a, 3) : a[3] = 9
因為之後的所有a[i], i > 3 都比9要小,因而f(a, 9)一定是9
求c語言大神
4樓:金色潛鳥
字串指標 自身 沒有存放字串的存放空間。
字元陣列 有存放字串的存放空間。
char arr[500];
char *sp; //這時字串沒有存放空間你可以動態分配空間,例如:
sp = (char *) malloc(sizeof(char)*501); 這時就有501位元組存放空間
也可以讓它指向某空間,例如: sp=arr; 這時就用char arr[500];的空間了。
5樓:抗陽飇
編寫1個排序子函式,該子函式採取指標作為輸入變數,對 n 個實數進 行排序。在 main 函式中呼叫該子函式,對 main 函式中定義的實數1維陣列中的 元素進行排序,排序後的序列儲存於原陣列中
c語言問題,求大神解答
求c語言大神詳細解釋一下的程式
6樓:忠孝俠士徐庶
define_cg_motion(piston,dt,vel,omega,time,dtime)
{thread *t;定義
7樓:匿名使用者
有一個很好的回答,另補充一下,計算力和力矩有一個函式很好用:compute_force_and_moment
C語言問題,求大神,C語言問題,求大神解答!
include int main char str 2000 gets str gets str int i 0 while i 2000 bool bb false for int i 0 i n i if bb printf mmm n return 0 先給你改好的 吧,沒做大手術,按你的思路...
c語言作業求大神解答,C語言作業。求大神解答
我給你二十分你幫我做了。c語言作業求大神解答 include int main return 0 第三個你沒給資料,沒寫 但是和前兩個沒太大差別,再加一個case 3 改一下資料就行 求大神解答c語言程式設計作業 include int main while 1 return 0 include i...
C語言讀程式題,求大神解答,C語言程式設計題目,求大神解析!
第五行,分別p0 ch0 p1 ch1 可以把ch看成兩個字元陣列,每個屬於長度5也就是p 0 1234 p 1 5678 至於下面兩個for的i和j迴圈,回顧下語法for 初始化 條件 語句 p 0 0 1 s 0 1 0 1 p 0 2 3 s 10 3 0 13 p 1 0 5 s 130 5...