函式部分
定義整型變數 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 原先返回的...