如题,本地测试明明没问题,为什么提交会运行错误呢?


通常来说,运行错误是由于运行过程中出现了,如数组越界、野指针、除0等问题。因此本地测试没问题,仅仅是常规数据可以,但提交后,OJ后台的数据测试过程中出现了如上所述的问题。


比如,某字符串相关的问题,说输入一个字符串,要求逆序输出,输入的长度不超过200,可你的代码中数组定义语句如下:

char str[50];

而样例给的数据是:

dotcpp.com

输出:

moc.ppctod

显然你的程序样例测试一点问题没有,完全放的下,可后台的数据很可能会出现长度199甚至200长的“边界值”数据的,你的程序可想而知,一定会放不下而溢出崩溃的,这就是原因所在。


其余除0错误也类似,我们知道0不能作除数,但事实上是,OJ后台一些比较特殊的数据在测试运行时,我们不知道在哪一个环节,某一个值可能被更改,从而莫名其妙的出现了除以0的情况,造成运行错误。这个需要大家自行排查了


以上,希望大家触类旁通

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)