Oj出现WA/RE怎么办

有时候做题时,在编译器上能编译正常,可是到oj这边总是各种判错,非常苦恼。于是我总结了一些oj报错的经常出现的问题,供大家参考。

目录

RE(running error ):

WA(wrong answer):


RE(running error ):

  1. 某个函数没有返回对应函数类型的值。比如,main主函数中有无return 0、函数int max()有无返回 int 值,C++的重载运算符函数 MyStack& operator = (const MyStack& b)有无返回*this或者该MyStack类的对象。
  2. 数组会不会开太小,人家要求有几个W数据的要求,而你开的数组大学却只是小小的几十,几百。在题目允许的内存空间的前提下,尽量开大数组。
  3. 除以0的错误。这是一个动态语义错误,即运行时发生的错误,编译器发现不了。要检查一下除号 / 和 求余 % 的右边是否会出现0的状况。
  4. 数组起始位置最好为0,最好不用用到a[Max]这个值。为以防万一,尽量开数组大小都加上1或5等等,即a[Max+1] 。这样就不会用到这些临界值。
  5. 有时候死循环也会导致RE,检查判断一下循环条件或选择判断条件。
  6. 指针一定要动态内存分配,不分配的话,指针变成野指针,没有指向哪个地址,会报错的。在C++中采用new来申请内存,delete来释放申请的内存。

WA(wrong answer):

  1. 看看人家的输入数据。是不是把boy的数据安到girl上了,n的值赋给m了……特别是样例中这一对数据还是相等的时候……我都不知道有几次干这样的傻事了。 
  2. 还是输入数据。如果一个测试点里有多组数据,有没有可能比方说sum = 0的时候结果一定为0,而无论后面的数据是什么?这样的话你可能会一个continue转到下一组数据。可是数据流才不会continue,后面没读完的数据理所当然的冲到了最前方,你的程序就这样WA了…… 
  3. 初始化。你的初始化正确么?边界条件是0,1,还是k,n? 
  4. 循环变量。for的循环变量如果是k,就看看后边用的是不是i。 
  5. 你的智商够不够高,是否考虑到所有的问题了?你可以想办法搞一份AC了的代码,里面写什么连看都不看,之后编写一个“测试数据制造机”,数大,数据多,情况就复杂,就可能出现你没想到的状况,拿两个程序对一下答案就知道了。 

未完待续……

可能有更多的Bug等着被发现,加油吧各位大佬!!


参考文章:oj判题WA/RE怎么办 - boobird - 博客园

欢迎关注我的微信公众号,分享一些有趣的知识:程序猿的茶水间

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值