牛客題霸NC12重建二叉樹Java題解
阿新 • • 發佈:2020-11-27
這個作業屬於哪個班級 | C語言--網路2011/2012 |
---|---|
這個作業的地址 | C部落格作業03--函式 |
這個作業的目標 | 學習如何設計函式、C語言基本資料型別 |
姓名 | 汪月月 |
0.展示PTA總分
1.本章學習總結
1.1 函式定義、呼叫、宣告
定義
函式型別 函式名(形參型別 形參變數,...)
{
函式內容;
}
- 函式型別即返回值型別,例如int double,不需要返回值時則用void。
- 函式名儘量用駝峰命名法,除非指定函式名。
- 形參與實參:函式定義的是形參,傳給函式的是實參,將實參的值傳給形參,型別要相同。
- 如果需要返回值,記得return。
int numberSum(int n) { int i,sum = 0; for (i = 1; i <= n; i++)//1--n求和 { sum += i; } return sum;//返回求和結果 }
呼叫
變數=函式名(實參);
如果沒有返回值就不需要等於變數。
宣告
使用函式時要對其進行宣告,才能更好使用。
在main函式前面對其進行宣告
函式型別 函式名(形參型別 形參變數,...);
最後的分號不要忘記。
1.2 全域性變數、區域性變數、靜態區域性變數
- 作用區域
- 全域性變數:作用於整個程式
- 區域性變數作用於本函式
- 儲存區
- 全域性變數和靜態區域性變數在靜態儲存區
- 區域性變數在棧中
- 作用時間
- 全域性變數和靜態區域性變數分配一次記憶體,一直都在
- 區域性變數只在使用函式時會出現
- 初始值
- 全域性變數和靜態區域性變數為0
- 初值不定
1.3 C資料型別及注意點
型別轉換
- 從int轉換為float時, 不會發生溢位,但可能有效數字被舍入。
- 從int或float轉換為double時, 因為double的有效位數更多,故能保留精確值。
- 從float 或double轉換為int時,因為int沒有小數部分且表示範圍更小,故可能發生溢位。將大的浮點數轉換為整數可能會導致程式錯誤。
char-->short-->int-->unsighed int-->long-->unsighed long-->double<--float
double型相除
double型變數相除時,需要先轉換成二進位制,計算後再轉化為十進位制,因為存在小數,所以轉化為十進位制時,存在誤差,
導致整除結果不準確,可以加上0.000001保證資料正確性。
1.4 C運算子
1. 賦值運算子
= ,+= ,-= ,*= ,/= ,%=
只有初始化後才能使用
2. 算術運算子
/ ,- ,+ ,* ,% ,++ ,--
a++為後增運算,++a為前增運算,最後結果都是a加了1.
不同的是,將其賦給某個變數時進行的操作不同。
3. 關係運算符
== ,< ,> ,<= ,>= ,!=
尤其注意==,不要少寫
4. 邏輯運算子
&& ,|| ,!
5. 三元運算子
例如:int max=a>b?a:b;
判斷a和b的值,如果a>b成立就讓max=a,否則max=b;
6. 位運算
優先順序
!> 算術運算子>關係運算符>&&>||>賦值運算子
2.小學生口算表示式自動生成系統
2.1模組流程圖
2.2函式功能及全域性變數介紹
void OperateMenu();//遊戲操作介面
void GradeOneMenu();//一年級
void GradeTwoMenu();//二年級
void GradeThreeMenu();//三年級
int operandsNumber(int grade);//生成運算元函式
char opera(int grade);//生成隨機運算子函式
int ComputerResult(int numberOne, int numberTwo, char b);//計算結果函式
void Correct();//回答正確函式
void Incorrect();//回答錯誤函式
2.3執行結果截圖,測試用例
一年級
二年級
2.4大作業中程式設計技巧總結
- 分裝函式
將使用多次的函式分裝成函式,更方便簡潔 - 註釋
有註釋能更加清楚的知道每一部分的作用 - 多檔案程式設計
將不同作用的函式分到不同檔案中,使得主函式更加簡潔