C語言程式設計求這道題演算法的詳細過程

2025-07-10 00:05:18 字數 3195 閱讀 4529

求這道c語言程式設計題怎麼做?

1樓:匿名使用者

常規的程式。

難?遞迴演算法。

#include

void main()

int fibonacci(int n)//函式部分;

elseif(n>=3)

f = fibonacci(n-1) +fibonacci(n-2);

return f;}

c語言程式設計 演算法題 求答案

2樓:

答案是d,%p格式一般而言是就是以16進位輸出變數的位址值,a的位址如果是100,a[3]元素的位址則是。

題目中的100是16進位數,而不是10進位數的100哦,這個要注意。

3樓:網友

p格式是十六進位輸出指標。

這裡p= a + 3

因此p的值比a大12(32位long資料環境下)c正好是12

c語言程式設計(c語言) 題目 步驟

4樓:網友

執行過程從main函式開始。

乙個陣列 int a

輸出g(0,5,a)這個函式的值。

此時將0,5,a分別帶入上面的那個函式執行就可以了int *a 表示乙個整形的指標 這個指標就指向那個a陣列,就相當於把int a這個陣列的值帶入。

g(int i,int j,int *a))函式。

5樓:ゞ壞崽崽

很久沒弄了 不知道對不對。

我一步步講你聽好了。

首先 定義 g陣列 i t為整數變數 a為陣列如果 i>=j 返回a陣列的j變數。

定義 k 為i,j平均數 t1 t2為整數變數定義ti的g陣列 t2的g陣列。

如果ti>t2 返回t1 否則返回t2;

定義a陣列具體變數。

輸出g陣列。

6樓:網友

函式的功能是找最大值吧,這是一種演算法。應該叫快速查詢最大值。這種演算法在同樣的硬體裝置下,它的查詢速度比一般的查詢演算法更快。

你看不懂的應不是**,而是演算法。遇到這種遞迴函式,靜下心一步一步走就可以了。

整個演算法的過程是這樣的,n個數先把他分成2塊,再把剛分的兩塊再分2塊,如此迴圈,一直到每組只有乙個數,然後同一級別的兩組數比大小,大的返回(也就是丟棄了小的那個),每一層遞迴都做上述的處理,結果出來的必是最大值。這種演算法的時間複雜度低。

7樓:網友

這個函式是利用二分查詢法查詢陣列中從第i位到第j位之間陣列最大的數!

下面我給你註釋上!

#include

int g(int i,int j,int *a)void main()

/定義乙個陣列。

printf("%d",g(0,5,a));//輸出查詢到的數}希望對你有用!

c語言的動態規劃演算法的這道題怎麼做啊,求大神!!!

8樓:網友

申請二維陣列 dp[n+1][m+1]。

1. dp[0][j],0<=j<=m,表示一種題型都不選擇並且競賽總時間為 j 時最多得分,顯然等於 0。

2. dp[i][0],1<=i<=n,表示只選擇競賽題型 0..i-1 並且競賽總時間為 0 時最多得分,顯然等於0。

3. dp[i][j],1<=i<=n,1<=j<=m,表示最多隻選擇競賽題型 0..i-1 並且競賽總時間為 j 時最多得分。

如果不選擇第 i-1 種題型,則最多得分 dp[i][j] = dp[i-1][j]。

如果只選擇 1 道第 i-1 種題型,則最多得分 dp[i][j] = 1*point[i-1] +dp[i-1][j-time[i-1]]。

如果只選擇 2 道第 i-1 種題型,則最多得分 dp[i][j] = 2*point[i-1] +dp[i-1][j-2*time[i-1]]。

. 最多可以選擇 k=j/time[i-1] 道第 i-1 種題型,則最多得分 dp[i][j] = k*point[i-1] +dp[i-1][j-k*time[i-1]]。

以上 k+1 種情況中的最大值即為 dp[i][j] 的最多得分,即 dp[i][j] = max(dp[i-1][j], 1*point[i-1] +dp[i-1][j-time[i-1]],2*point[i-1] +dp[i-1][j-2*time[i-1]],dp[i][j] = k*point[i-1] +dp[i-1][j-k*time[i-1]])即 dp[i][j] = max(k*point[i-1] +dp[i-1][j-k*time[i-1]]|0<=k<=j/time[i-1])。

最終 dp[n][m] 即為最多分數。

從 dp 最後一行依次往第一行即從最後一種題型開始往第0種題型求每種題型選擇的題目數。

設當前行為 i,列為 j,最多分數為 p,則求出 k(0<=k<=j/time[i-1]),使得 p == k*point[i-1] +dp[i-1][j-k*time[i-1]],則 k 為第 i-1 種題型選擇的題目數。令 j -= k*time[i-1],p -= k*point[i-1],後求 dp[i-1] 行即第 i-2 種題型選擇的題目數。

具體**見附件。

【c語言】100分求兩道演算法補充題,求大神給出詳細過程

9樓:網友

node *stack=null;//初始為空void push(char ch)else*p=new node;

p)->data=ch;

p)->next=null;}}

char pop()

char ch=(*p)->data;

delete (*p);

p=null;

/大致是這樣的 沒測試。

用計算機c語言程式設計,程式設計題:從鍵盤輸入十個數,將他們進行降序排列。 求解答需要詳細過程,謝謝!

10樓:聽不清啊

#include

int main()

int i,j,t,a[10];

for(i=0;i<10;i++)//輸入10個整數scanf("%d",&a[i]);

for(i=0;i<9;i++)//降序氣泡排序for(j=0;j<9-i;j++)

if(a[j]

自學完了譚浩強的C語言程式設計後

看方向,具體什麼方向學什麼我就提供不了多少建議了,不過有一句話送你 先想好要做什麼,然後再決定學什麼。為什麼我一直看不見高質量問題的細節。譚浩強的書講的很淺顯。譚浩強的c語言程式設計快學完了,接下來該學哪本書。建議你剛剛學完c不要看那些技術含量比較有深度的書,比如 c陷阱與缺陷 c與指標 之類的書。...

關於C 物件導向程式設計C語言,急

首先,學習c 不用先學習c,因為這是兩個語言,只是學了c,再學c 會比較快,同樣,如果學了c 再學習c,也會比較快,一樣的道理。而且c 相對上手會比較快,因為沒有c裡面的那些指標啊什麼,理解起來容易一些。至於c 和c哪個更有用,這個已經有很多人問這樣類似的問題,比如哪個更好啊什麼,沒有哪個語言更有用...

c語言程式設計檔案開啟關閉

include include void main fclose fp 關閉檔案fp fclose fp 關閉檔案fp c語言檔案開啟了為什麼要關閉 開啟檔案就是把檔案調入記憶體,如果不關閉記憶體將一直被佔用著,別的程式就不能使用這部分記憶體。如果是最後才關閉的,沒有影響,程序結束時會自動關閉所有檔案。良...