C語言部落格作業 函式巢狀呼叫

2022-05-19 23:39:16 字數 3391 閱讀 9584

函式部分

定義整型變數 result

找到遞迴出口

如果m=0;

result=n+1;

否則if(n=0)

result=ack(m-1,ack(m,n-1);

else

result=ack(m-1,ack(m,n-1)) ;

返回result;

開始時沒有真正理解遞迴的用法,結果推了很久,到最後陷入死迴圈;最後在同學的指點下說不用去糾結遞迴的演算法 ,在寫時只用考慮第一步就好啦,其他的計算機會解決;

標頭檔案

插入學生資訊及學生成績資訊**

刪除學生成績資訊**

總分排序**

(3)全排列

從n個不同元素中任取m(m≤n)個元素,按照一定的順序排列起來,叫做從n個不同元素中取出m個元素的乙個排列。當m=n時所有的排列情況叫全排列。

如1,2,3三個元素的全排列為:

1,2,3

1,3,2

2,1,3

2,3,1

3,1,2

3,2,1

//全排列

inline void swap(int &a,int &b)

void perm(int list,int k,int m)

{ if (k == m-1)

{ for(int i=0;iswap函式用於交換兩個數的值,perm函式用於將陣列中的數實現全排列,先找到遞迴出口,考慮 k=m-1的特殊情況,呼叫遞迴函式實現陣列元素全排列

遞迴(recursion):程式呼叫自身的程式設計技巧。

遞迴滿足2個條件:

(1)有反覆執行的過程(呼叫自身函式)

(2)有跳出反覆執行過程的條件(遞迴出口)

注意點:

(1)遞迴出口:即遞迴的結束條件,到何時不在遞迴呼叫下去

(2)遞迴式子:遞迴的表示式,如fact(n)=n*fact(n-1)

巨集定義的格式:

#define 巨集名 巨集定義字串
注:巨集定義字串是巨集名對應的具體實現過程,可以是任意字串,中間可以有空格,以回車符做結束,例:

#define pi 3.1415926

#define true 1

#define false 0

(1)符號常量,如pi、陣列*小定義,以增加程式的靈活性

(2)簡單的 函式功能實現,由於巨集要在一行內完成,只能實現簡單的函式功能

(3)為程式書寫帶來一些方便

1.常用標準標頭檔案

ctype.h 字元處理

math.h 與數學處理函式有關的說明與定義

stdio.h 輸入輸出函式中使用的有關說明和定義

string.h 字串函式的有關說明和定義

stddef.h 定義某些常用內容

stdlib.h 雜項說明

time.h 支援系統時間

c語言把儲存有一部分程式的檔案稱為程式檔案模組;

程式、程式檔案模組與函式間的關係:乙個*程式可由幾個程式檔案模組組成,每乙個程式檔案模組又可能包括若干個函式,程式檔案模組只是函式書寫的載體

1.外部變數;

外部變數宣告格式:

extern    變數名錶
2.靜態全域性變數

3..函式與程式檔案模組

函式與程式檔案模組的宣告格式:

extern   函式型別   函式名  (參數列說明)
4.靜態的函式在c語言中也稱內部函式。定義格式為:
static    函式型別     函式名(參數列說明)
輸入任意個字串,能對字串降序排序。

錯誤原因:沒有理解指標陣列,導致答案錯誤;

假設陣列a是個公升序的陣列序列,現要通過二分查詢法在陣列中查詢關鍵字key,並輸出在陣列中的下標及查詢次數。 若找不到,則輸出-1及查詢次數。

錯誤原因:理解錯二分查詢的判斷條件導致答案錯誤

將s所指字串的正序和反序進行連線,形成乙個新串放在t所指的陣列中。

對於最近的學*狀態表示很不滿意,不是說沒有在認真的讀書,而是最近的學*效率**降低;還有最近對於c語言的學*,感覺難度越來越*了,自己有點跟不上節奏,就比如上週的上機考試,對於稍簡單的題自己私下想想可以寫出來,但也不知道為什麼上機又不行,可能還是基礎掌握的不紮實吧;還有這次的*作業,感覺自己有點無從下手,不知道該從**開始,怎麼將各個函式間聯絡起來,一直是顯示無法執行的狀態;感覺對c語言的學*,自己的理解能力越來越差了,可能是自己下的功夫還不夠多,轉眼也快要期末了,還是好好復*各科的功課吧!

C語言部落格作業 函式巢狀呼叫

void dectobin int n if n 2 printf d n 2 遞迴出口 n少於2時說明n到達最大位,輸出1 else dectobin n 2 遞迴式子 n除2遞進,歸回來後再輸出,因為最開始求餘的餘數要放在最後輸出 printf d n 2 對2求餘輸出 先增加三名學生的資訊,以...

C語言部落格作業 函式巢狀呼叫

if n 1 返回 else i for 0 to n 1 if a i a i 1 交換 n n 1呼叫自身函式 1.2.1 畫函式模組圖,簡要介紹函式功能。1.2.2 截圖展示你的工程檔案 1.2.3 函式 部分截圖 本系統 總行數 367 1.2.4 除錯結果展示 1.2.5 除錯碰到問題及解...

C語言部落格作業 函式巢狀呼叫

1.定義i,用於迴圈,定義max a n 1 用於存放每次遞迴的最大值 2.如果n等於0,return 3.如果n不等於0,令i n 1 i 0 i 4.如果max比a i a小,那麼交換a n 1 和a i 的值,即將最大值放到a n 1 5.遞迴sort a,n 1 6.return 原先返回的...