C語言博客作業--函數嵌套調用


一。題目

1.1 PTA題目:6-6 遞歸求簡單交錯冪級數的部分和

1.設計思路

double fn( double x, int n ){
	定義一個數sum存放輸出的值。
	if(n==1  返回 x;
	else{sum=(sum+fn(x,n-1))*(-x)+x;  \\表示每次遞歸時都以這樣的方式算出,前一個算式乘上-x在加上x,這樣便可以實現特定算式的輸出
	最后返回sum的值;
}

2.代碼截圖

3.本題調試過程碰到問題及解決辦法

  • 問題:遞歸出來后算式后會多出來加1;

  • 解決辦法:后面1改為x,這樣每次都以'(x^2-x)*(-x)+x'這樣便可以輸出正確的值。

1.2 學生成績管理系統

一共375行。

1.2.1 畫函數模塊圖,簡要介紹函數功能。


按由右至左,分別進行如下功能:

  • 1:能夠新增學生信息,並按照學號排序

  • 2:修改學生成績信息。

  • 3:刪除學生成績信息。

  • 4:輸出顯示所有學生成績信息,按學號排序

  • 5:能夠分別按照總分和平均分進行排序。

  • 6: 能夠根據學號查詢學生信息。

  • 7:退出系統。

1.2.2 截圖展示你的工程文件

1.2.3 函數代碼部分截圖

  • (1)頭文件:

  • (2)主函數:

  • (3)新增:

  • (4)修改:

  • (5)刪除:

  • (6)顯示所有學生成績信息。(按照學號排序):

  • (7)能夠分別按照總分和平均分進行排序:

  • (8)能夠根據學號查詢學生信息:

特征點測試:

  • (1)學號不規范:

  • (2)學號重復:

1.2.4 調試結果展示

  • (1)添加學生信息:

  • (2)修改成績:

  • (3)刪除:

  • (4)顯示:

  • (5)能夠分別按照總分和平均分進行排序

  • (6)查詢學生信息:

1.2.5 調試碰到問題及解決辦法

  • 出現了此類錯誤;添加新文件,應該用'New file'而不是用'添加(A)';

  • 插入排序應該將插入弄進下一個數便可;而我直接吧他前一個數直接覆蓋掉了;

二、截圖本周題目集的PTA最后排名。

1.PTA排名

三、閱讀代碼(1分)

  • 6-7 遞歸法對任意10個數據按降序排序:用遞歸法對任意10個數據按升序排序。

     - ![](http://images2017.cnblogs.com/blog/1232112/201712/1232112-20171231165053273-1584293128.png)
    
     - 他的功能是通過遞歸使只用一次循環便可以將其按照降序排列;優點:通過將循環i賦值為n-2使只需用if而不用else便可以將其完成,減少代碼量;
    

四、本周學習總結

1.介紹本周學習內容

1.1.1宏基本定義

'#define 宏名 宏定義字符串'

1.1.2宏的用途

  • (1)可以定義字符常量,如可以:'define pi 3.14159'

  • (2)可以定義某些簡單的函數

  • (3)可以為程序書寫帶來方便,例如如果一個很長的字符需要多次輸出,則可以用宏定義的來代替他

1.1.3帶參數的宏定義

如可以這樣定義:'define sqr(x) xx'.但要注意的是,如果使用時x=x+y,那么他輸出的值是‘x+yx+y’,如果要算‘(x+y)(x+y)’要將‘xx’改為‘(x)*(x)’

1.2.1文件包含的格式

  • 1.' #include<stdio.h>' 它是由c系統預先設置好的include文件夾中的指定文件包含起來;

  • 2.'# include '“需包含的文件名”,一般是自己設定的包含文件。先在當前文件夾查找,若找不到則再去系統文件找;

1.2.2一些標准頭文件

  • (1)'#include<etype.h>'字符處理;

  • (2)'#include<math.h>'與數學有關的說明與定義;

  • (3)'#include<stdio.h>'輸入輸出函數中使用的有關說明和定義;

  • (4)'#include<string.h>'字符串函數有關說明和定義

  • (5)'#include<stddef.h>'定義某些常用內容;

  • (6)'#include<stdlib.h>'雜項說明

  • (7)'#include<time.h>'支持系統時間函數。

1.2.3編譯預處理

  • ‘#if....#else...#end if’,與if else語句不同,當一條程序能夠執行時就會自動舍棄另外一段程序

1.2.4文件模塊間的通信

  • (1)需要用到全局變量,在主函數程序使用全局變量;
    然后在其他函數使用extern 來實現函數間的通信。

  • (2)在一個函數內需要調用另一文件內的函數,要使用‘extern 函數類型 函數名 ’完成調用

2.學習體會

  • (1)對於鏈表這個還是不懂,怎么用,為什么用,完全看不懂。書上的內容看了好幾遍,依舊是雲里霧里。

  • (2)做了項目后突然代碼量變得大了很多,再加上有的時候好幾個程序文件都有錯誤時會使這個項目崩潰,而且有時候明明定義了一個全局變量,在其他文件內使用這個變量時,會出現

  • (3)學習如何寫程序,過程很痛苦,有時候一點點錯誤(如加不加換行符)就會使程序崩潰。有時候題目很簡單,但思路卻很難找到。有時候找到思路了,寫的時候,越往下寫,發現要考慮的東西也多,代碼量也越大。一般別人用很少的代碼就可以而我卻會用很多甚至一倍的代碼才寫出來。不過當你將它寫出來,特別是你自己做完一個程序,並且運行成功且正確時,心里很高興的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM