如题,本地测试明明没问题,为什么提交会运行错误呢?
通常来说,运行错误是由于运行过程中出现了,如数组越界、野指针、除0等问题。因此本地测试没问题,仅仅是常规数据可以,但提交后,OJ后台的数据测试过程中出现了如上所述的问题。
比如,某字符串相关的问题,说输入一个字符串,要求逆序输出,输入的长度不超过200,可你的代码中数组定义语句如下:
char str[50];
而样例给的数据是:
dotcpp.com
输出:
moc.ppctod
显然你的程序样例测试一点问题没有,完全放的下,可后台的数据很可能会出现长度199甚至200长的“边界值”数据的,你的程序可想而知,一定会放不下而溢出崩溃的,这就是原因所在。
其余除0错误也类似,我们知道0不能作除数,但事实上是,OJ后台一些比较特殊的数据在测试运行时,我们不知道在哪一个环节,某一个值可能被更改,从而莫名其妙的出现了除以0的情况,造成运行错误。这个需要大家自行排查了
以上,希望大家触类旁通
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程