1. 程式人生 > 實用技巧 >牛客題霸NC12重建二叉樹Java題解

牛客題霸NC12重建二叉樹Java題解

這個作業屬於哪個班級 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 全域性變數、區域性變數、靜態區域性變數

  1. 作用區域
  • 全域性變數:作用於整個程式
  • 區域性變數作用於本函式
  1. 儲存區
  • 全域性變數和靜態區域性變數在靜態儲存區
  • 區域性變數在棧中
  1. 作用時間
  • 全域性變數和靜態區域性變數分配一次記憶體,一直都在
  • 區域性變數只在使用函式時會出現
  1. 初始值
  • 全域性變數和靜態區域性變數為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大作業中程式設計技巧總結

  • 分裝函式
    將使用多次的函式分裝成函式,更方便簡潔
  • 註釋
    有註釋能更加清楚的知道每一部分的作用
  • 多檔案程式設計
    將不同作用的函式分到不同檔案中,使得主函式更加簡潔