二楼正解。但是应该是换行符。
但是一般省里评测通常采用的是cena,它的比较选项默认是忽略行末多余空格,所以就会有很多省里分数和国家分数不同的情况。
在国家评是在Linux下评的,这个系统noi官网上有的下,不过不值得去研究。一般来说,需要注意的事windows下对于回车符和换行符是不区分的,但是在Linux是区分的,因为它们的ASCII码值不同。
而且,一个完整的行应该是包含换行符的,这表明行结束了。所以说,在输出是一定要带上换行符。做过usaco就应该有这个感觉。
原则上是要你加的加,不要你加的不要加
举个例子(我用Pascal,你不会看不懂吧?!):要求输出a数组中的n个数,每个数之间要空格:
for i:=1 to n do write(a[i],' ');
writeln;
就是错误的,因为这样的话打第n个时,后面也会加上一个空格,故正确的打法是:
write(a[1]);
for i:=2 to n do write(' ',a[i]);
writeln;
还有一些比如"ok"打成"Ok",或是多了一个换行也是错的,我就不多说了。
而且这一错就是一个点的10分没了,不会是给一半分或什么的
jzlikewei,您说的有一点问题,noip是使用cena的,但大概从2008开始使用逐字节比较。但是因为08年还有一些人不熟悉逐字节比较,故最后放松了一点要求。
估计今年会严格使用逐字节比较。
NOIP不太清楚。不过看样子这评测方式是指全文文本比较,默认是不过滤空格和换行符的。
这里有类似的问题:
http://hi.baidu.com/zhangyan19932000/blog/item/03d0b554cad4a0183a2935c5.html
ACM/ICPC的话一般会算作PE(Presentation Error,格式错)的吧。
全文比较就是逐字节比较,多一个少一个空格或回车都不可以。行末必须加回车符,不加就是错的。