校内ACM上出现Presentation Error的一点经验
首先声明,本人是菜鸟,最近开始学习C语言。现在很多学校校内都有Online Judge平台(类似ACM平台),通常在电脑上写的程序运行成功后,在Online Judge平台上同样能Accepted。但是有时候,明明电脑上运行的结果正确,但在OJ平台上却会出错,当然,最常见也最纠结的,估计也就是Presentation Error。在百度上搜索过,也没有系统讨论这种错误的文章。昨晚一个问题提交了8次都是Presentation Error,和老师讨论了一下修改了代码,得到了关于这个错误的一点新的认识。想到这个问题很多和我一样的菜鸟可能也会碰到,把经验分享给大家。
首先可以肯定的是,你的思路没有错,输出结果也与标准输出结果非!常!接!近!出现这个错误最可能的原因是,在输出结果的后面,多了或少了没什么意义的空格,tab,换行符等等。所以,请先认真检查程序的输出结果是否与标准完!全!一!致!OJ平台对格式的检查可以说是非!常!严!格!
如果认真检查过,真的没有问题的话,唯一的可能,就是标准输出结果存在问题!标准的输出结果后面有些你看不见的空格或者换行符!加个空格或换行符再试一试!
如果还是不行,也许有些特殊的问题被忽视了,以下是本人两次PE的经历。
第一次:C语言与C++的差别?我们中大的Sicily的第一题 http://www.soj.me/1000 输入两个数输出它们的差。看上去很简单,但我写了好几次,都是Presentation Error!以上是当时的代码:


,原来PE的代码就变成Accepted了!请注意C++输出语句中的隐藏的换行符!
第二次:数组排序问题 http://www.soj.me/show_problem.php?pid=8740
输入10个整数 输出由小到大排序的10个整数。这个问题我提交了8次,C语言的全部Wrong Answer,C++的全部PE!以下是WA PE和Accepted的代码,大家自己找找区别吧。1.C语言的WA



就写到这里了,以后如果有新的情况再更新。