使用 vim 編寫程式#
- 儲存檔案並退出:、ZZ
- 在 Linux 中,一切皆檔案
- 可執行程式 a.out 本質也是檔案,二進位檔案
- .cpp 檔案裡可以寫 C 程式,但反過來不行(.c 檔案裡寫 C++ 程式)
- 注意:C11 標準下的一些巨集不被 C++ 兼容
C 語言編程規範#
- 國內主流編碼規範:ali + google、baidu + google。參考Google C++ 編程風格指南
- PS:
- 兩個函數之間要留白:一個空行即可
- 一般採用大小駝峰命名規範:MyName (大)、myName (小)
如何進行程式 debug#
- 常識:程式預設以 main () 函數作為入口
- 函數封裝:函數定義完,函數呼叫了嗎?
- 編譯報錯時:自上而下找錯、debug
- 與預期不符:嘗試使用 printf 輸出變數值
海賊 OJ 的使用及編程提升#
- 先刷HZOJ - 入門組
- 小練習👇
HZOJ-69:開學考試 2:日期判斷#
樣例輸入
1991 1 30
1991 1 32
樣例輸出
Yes
No
- 思路
- 判斷非法的輸入、月份天數是否合理(閏年)
- 兩個版本
- 複雜的 if else 判斷:瘋狂嵌套
- 空間換時間:創建月份天數陣列
- 代碼
-
- 版本一
- 關鍵就在陣列的使用
- 三目運算符不是判斷語句,不會有分支預測問題
- 版本二
- 可讀性低
- 邏輯複雜、易出 bug
- 考慮分支預測問題 - 預加載過程,效率低
-
素數問題的思考#
- 密碼學和素數相關
- 詳見《C 語言與提升》——5. 陣列與預處理命令 —— 素數篩、線性篩以及程式碼演示部分