C++蒟蒻求助,才60分,第2个测试点没按enter直接输出了

P1055 [NOIP2008 普及组] ISBN 号码

polygonolly @ 2022-12-16 16:25:18

#include<iostream>
using namespace std;
int main(){
    char a[13];
    int b;
    cin>>a;
    b=(int(a[0])+int(a[2])*2+int(a[3])*3+int(a[4])*4+int(a[6])*5+int(a[7])*6+int(a[8])*7+int(a[9])*8+int(a[10])*9-(45*48))%11;
    if(b==10) {
        if(a[12]=='X') cout<<"Right";
        else {a[12]='X';cout<<a;}}
    else {
        if(int(a[12])-48==b) cout<<"Right";
        else {a[12]=b+48;cout<<a;}}//0-670-82162-X
    return 0;
}

2,3,8,10没过,测试点2输入数据用IE打开复制粘贴情况如标题所示,用记事本打开却正常运行,求大佬指点。


by kkdy_L @ 2022-12-16 16:33:32

数组开小了,输入字符末尾是有不可见字符‘\0’的,把数组a多开一位到14就可以过。

顺带一提,下次不要再想着省这点空间了(


by polygonolly @ 2022-12-16 16:52:10

@sy20060120 谢谢大佬,明白了


|