使用 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. 數組與預處理命令 —— 素數篩、線性篩以及代碼演示部分