如题,本地测试明明没问题,为什么提交会运行错误呢?
通常来说,运行错误是由于运行过程中出现了,如数组越界、野指针、除0等问题。因此本地测试没问题,仅仅是常规数据可以,但提交后,OJ后台的数据测试过程中出现了如上所述的问题。
比如,某字符串相关的问题,说输入一个字符串,要求逆序输出,输入的长度不超过200,可你的代码中数组定义语句如下:
char str[50];
而样例给的数据是:
dotcpp.com
输出:
moc.ppctod
显然你的程序样例测试一点问题没有,完全放的下,可后台的数据很可能会出现长度199甚至200长的“边界值”数据的,你的程序可想而知,一定会放不下而溢出崩溃的,这就是原因所在。
其余除0错误也类似,我们知道0不能作除数,但事实上是,OJ后台一些比较特殊的数据在测试运行时,我们不知道在哪一个环节,某一个值可能被更改,从而莫名其妙的出现了除以0的情况,造成运行错误。这个需要大家自行排查了
以上,希望大家触类旁通
本文固定URL:https://www.dotcpp.com/course/840