低级错误整理

今天又莫名其妙地水题爆零……特开一贴,记录一些有参考价值的低级错误。

1、if内的条件顺序

如stk为一个栈,if(stk.top < n && !stk.empty)就可能出错。要把优先级更高的前置条件放在前面,在出错(如栈空)时及时终止。

2、取模处理环状数组

记得特判取模后为0的情况……有时需要改为n(数组最后一个元素)

3、init()

写完之后记得在主函数里加上!!!!!!!!!!!!!!

4、关于double

%llf是long double,%lf才是double!

5、关于scanf输入char

会输入空白字符。记得将%c前面加一个空格屏蔽空白符。

6、左移右移的优先级比加减还低

所有左移右移操作尽量都加上括号。

7、关于拼写

算不上代码的错误……我之前树状数组所有的“请求”都写成了quary。

正确的写法是query或者enquiry。

8、for循环的++和--

“这tm还用再说?”“我tm怎么又卡死了?”

9、输入数组

有的一位数字的数组中间没有空格……不要一个for循环结果当成大整数录进去了

10、判断质数

常规方法,从2扫到根号n的时候一定要加等于号……否则质因子只有根号n的时候不能返回false

11、类似于八皇后问题

输出的时候要注意范围是1~N还是0~N-1

12、模数相减先加模

如前缀和处理需要取模的问题等,如相减前不加上一个模有可能会减出负数

(然后我以为是溢出debug一个小时

原文地址:https://www.cnblogs.com/miserweyte/p/11574218.html