演算法入門總結(三) C語言基礎

2021-08-29 03:44:31 字數 1520 閱讀 2253

c語言歷史悠久,與底層互動的實現較為方便,在上個時代,c語言在程式設計界大放異彩,如今雖輝煌不再,但作為現代高階程式語言的鼻祖與演算法競賽的首選語言,有必要先了解一下它。

%d:十進位制有符號 int 型

%u:十進位制無符號 int 型

%f:小數形式(6位)float、double 型

%e:標準指數形式float、double 型

%c:單字元 char 型

%ld:十進位制有符號 long 型

%lu:十進位制無符號 long 型

%mf:m > 0:右對齊,左補空格;

m < 0:左對齊,右補空格

%0mf:將補充字元空格置換為0

%.nf:輸出 n 位小數的浮點數

%m.nf:%mf + %.nf(特殊地,若 n == 0,則不輸出小數字,個位數四捨五入,且保證 m 個寬度)

%nd:輸入 n 位 int 型

%f:輸入 float 型別(可以使用%mf,但不可使用%.nf)

%c:輸入一位 char 型(包括空白符)

%lf:輸入 double 型

%ld:輸入 long int 型

%*d:跳過乙個 int(如scanf("%2d%*2d%2d", &a, &b); 輸入123456,則 a 為12,b 為56)

以上輸入需在變數前加 & 符號以取位址。

%s:輸入一串字元,遇到空白字元會停下來

該輸入無需新增 & 符號,因為字串變數本身代表字元陣列首位址。

在做演算法題時,常用的一種多資料輸入方式為:

while(scanf("%d %c", &n, &c) == 2 && n) {}

其中,2 為輸入變數的個數,此語句可判斷有資料輸入且 n 不為0,「==2」也可換為「!= eof」

a = getchar(); <=> scanf("%c", &a);

b = putchar(); <=> printf("%c", b);

其中,getchar() 與 putchar() 執行速度快,而 scanf 與 print 對格式控制較好,使用更靈活

產生 [0, rand_max] 之間的隨機整數

rand_max 在stdlib.h中定義為不大於雙位元組整數的最大值32767,使用 rand() 函式前需宣告#include

要產生 [0, 100) 的隨機數,只需令 rand() % 100 即可

p.s. rand() 函式生成隨機數的順序每次是不變的,應使用隨機數種子函式 srand(int),種子引數可以使用系統時間 time(),故最終形式如下:

#include #include #include int main()
#include #include clock_t start, stop; //程式開始與結束的標誌

double duration; //測試部分執行的秒數

int main()

C語言基礎知識總結(三)

1 聯合體 共用體 不同型別的變數共同占用一段記憶體 相互覆蓋 聯合變數任何時刻只有乙個成員存在,節省記憶體 聯合體變數的大小 最大的成員所佔的位元組數 union myvalue void main typedef union jvalue jvalue 2 列舉 限定值,保證取值的安全性 enu...

C語言入門基礎

c語言的字符集包括 1 大小寫英文本母 2 數字 3 運算子 4 括號 5 標點符號 6 特殊符號 7 空白符 空格符 換行符 製表符 變數 程式執行過程中其值可以改變的量 變數有兩個要素 變數名與變數值 變數名 用識別符號命名,大小寫敏感,不能使用關鍵字 命名原則 見名知意 name xm 姓名 ...

c語言入門基礎

c語言的結構 1 hello world 簡單來說,乙個c程式就是由若干標頭檔案和函式組成。include 包含標頭檔案 主函式 int main printf hello world return 0 include 就是一條預處理命令,它的作用是通知c語言編譯系統在對c程式進行正式編譯之前需做一...