首页 > 代码库 > 比较容易犯的一些智障错误(不定时修改)

比较容易犯的一些智障错误(不定时修改)

无论在什么学习中,在成长的过程中,注定要犯一些错误,有些比较高级的错误,有些是比较智障的错误。那么在oi的学习中,我们最讨厌的就是一些智障的小错误,因为如果是大错误的话一般情况下在测试样例的时候都是能够发现的(比如死循环啊什么的),然而智障的小错误有时候能让我们20分钟敲出来的程序检查个一个小时甚至一天(当然不是在竞赛中),那么总结一下这些智障的小错误能够帮助我们在程序莫名其妙挂掉的时候能够往那个方面去检查。

1.在写if语句的时候:

if(){
    
}
else if(){
    
}

最好加上else,别问我咋知道的,noip2016的T1就是因为这个问题本来ac的程序变成了30。QAQ。

2.需要多重循环的时候,如果这层循环是有特殊含义的时候,最好别用循环变量表示(i,j,k,l等),当然,如果你是dalao除外。最近写了一道题,最外层循环表示要枚举的数,我用i表示了,然后这个两重循环还挺长,这就导致了有一个循环写成了

for(int j=1;j<=n;i++)

然后就智障的查了两天才发现,果断想掐死自己QAQ。

3.当变量贼多的时候,还是用他们的英语当变量名比较好,因为我是个弱鸡,还没有深知乱起变量名的危害,这就导致了我又一次开了八个变量分别是

int x[100],xx[100],xxx[100],xxxx[100];
int y[100],yy[100],yyy[100],yyyy[100];

而且还没有加注释(f**k!!!!),导致我每次想要往数组里存数据的时候都要往上看看这个数组到底是表示什么的,然后又是因为手滑有一个数组多打了一个x查了一天QAQ。

 

比较容易犯的一些智障错误(不定时修改)