C語言部落格作業--函數嵌套調用

來源:互聯網
上載者:User

標籤:一個   聯絡   表示   檔案包含   節奏   內建函式   檔案   bubuko   反序   

1.1 PTA題目:6-2 遞迴計算Ackermenn函數1.設計思路
函數部分    定義整型變數 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;          end;
2.代碼

3.調試問題

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

1.2 學產生績管理系統(5分)1.2.1 畫函數模組圖,簡要介紹函數功能。

如:

1.2.2 展示你的工程檔案1.2.3 函數代碼部分本系統代碼總行數:1.2.4 調試結果展示1.2.5 調試碰到問題及解決辦法。二、本周題目集的PTA最後排名

三、閱讀代碼

(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){    int temp=a;    a=b;    b=temp;}void Perm(int list[],int k,int m){    if (k == m-1)     {        for(int i=0;i<m;i++)        {            printf("%d",list[i]);        }        printf("n");    }    else    {        for(int i=k;i<m;i++)        {            Swap(list[k],list[i]);             Perm(list,k+1,m);            Swap(list[k],list[i]);         }    }}

Swap函數用於交換兩個數的值,perm函數用於將數組中的數實現全排列,先找到遞迴出口,考慮 k=m-1的特殊情況,調用遞迴函式實現數組元素全排列

四、本周學習總結(1分)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    函數類型     函數名(參數表說明)
上機考試錯題函數題6-1 jmu-c-字串降序排序(20 分)

輸入任意個字串,能對字串降序排序。

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

6-2 jmu-c-二分尋找(20 分)

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

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

6-3 字串正反序串連(20 分)

將s所指字串的正序和反序進行串連,形成一個新串放在t所指的數組中。

2.學習體會。

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

C語言部落格作業--函數嵌套調用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.