《算法筆記》非常适合計算機上機考試,對于資料結構水過的大三計科狗更像是一個重新學習的機會。
一、基本資料類型
1、整型:
(1)int占用32比bit,在算法測試中,絕對值在10^9範圍以内的整數都可以定義成int型。
(2)長整型long long,占用64bit,題目要求整數取值超過2147483647則需要使用。當long long指派大于2^31-1的初值,需要在後面加LL,否則編譯錯誤(codeblocks好像沒毛病)。
2、浮點型
(1)單精度float:6~7位精度,在精度要求高的題目裡面不适用。
(2)雙精度double:15~16位精度,比較常用,以後碰到浮點型的資料就用double。
3、字元型
(1)小寫字母比大寫字母大32。(%c是C語言中char的輸出格式)
(2)轉義字元:
\n:換行;
\0:代表空字元NULL,ASCII碼為0非空格。
4、布爾型
5、強制類型轉換
6、符号常量和const常量
(1)#define pi 3.14
(2)const double pi=3.14
(3)define可以定義任何語句或片段,宏定義不能随便用,盡量不能使用宏定義來做除了定義常量以外的事情,除非給任何地方加上括号
7、自增運算符
i++:先使用i再将i加1
++i:先将i加1再使用i
8、位運算符
比如左移、右移、與、或、異或、取反
程式中個比較大的數可以設定成(1<<31)-1(注意:必須加括号,位運算優先級比算數運算低)
二、順序結構
1、指派表達式
2、輸入輸出語句
(1)在scanf中,除了char數組整個輸入的情況不加&之外,其他變量類型都需要加&
(2)scanf對其他格式符(%d)的輸入是以空白符(空格、tab)為結束判斷标志的
(3)scanf的%c格式可以讀入空格跟換行
3、getchar和putchar輸入輸出字元
getchar用于輸入單個字元,putchar用來輸出單個字元,使用scanf不便的場合使用getchar輸入字元。值得注意的是,getchar可以識别換行符。
4、常用math函數
數學函數的使用需要在程式開頭加math.h
(1)fabs(double x):取絕對值
(2)floor(double x) ceil(double x):向下取整和向上取整
(3)power(double r, double p):傳回r^p
(4)round(double x):将double型變量x四舍五入
三、選擇語句
1、if語句
if(n)==if(n!=0)
if(!n)==if(n==0)
兩者等價,是一種簡化的寫法