使用 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. 数组与预处理命令 —— 素数筛、线性筛以及代码演示部分