声明:我日常不用DevC++,这些方法可以脱离DevC++使用

常见疑难杂症治疗方法

bugs solutions
写错人名(例如freda写成fread) 人名直接复制就好了
错误地使用STL(例如,lower_bound和upper_bound用错) 不用不确定的功能或者类似的函数多试几次,总能找到正确的那个
二分细节(例如,答案是左端点还是右端点) 对样例,再对几组手造的小数据,哪个正确就是哪个
算法细节错误(例如,初始化高斯消元的系数矩阵填错数字) 在所有可能出错的地方输出一下可能出错的东西
漏掉特判边界条件 造包含边界条件的小数据看结果
死循环/死递归 输出循环变量/递归函数的参数,一定要用cerr
下标从0开始还是1开始 形成一个固定的模式,不变就好了

一些debug需求的实现方法

requirements solutions
跟踪函数调用 在函数开始调用和结束的地方分别给出输出
找到RE的地方 直接跟踪代码的执行,有可能RE的地方一步一个输出
判断某个变量是否取到某个特殊的值 使用if语句和异常机制(如果取这个值则抛出异常,用来辅助处理边界问题)

特别提醒:

附加资源:debug.hpp