Dev-c++全过,样例也对了,但只有30分(1,4,7过)

P1055 [NOIP2008 普及组] ISBN 号码

Lve_Zxy @ 2022-08-06 19:12:17


#include<bits/stdc++.h>
using namespace std;
int n,cur,a,b,c;
char d;
main(){
    ios::sync_with_stdio(0);
    scanf("%d-%d-%d-%c",&a,&b,&c,&d);
    n+=a;
    n+=b/100*2+b%100/10*3+b%10*4;
    n+=c/10000*5+c%10000/1000*6+c%1000/100*7+c%100/10*8+c%10*9;
    n%=11;
    //cout<<n<<" "<<d;
    //if(n==t)cout<<"cmsndhhhd";
    int t=d-48;
    if(n==10&&d=='X')cout<<"Right";
    else if(n==t)cout<<"Right";
    else{
        printf("%d-%d-%d-",a,b,c);
        if(n==10)cout<<"X";
        else cout<<n;
    } 
}

by xutongwei @ 2022-08-06 20:05:02

@FlowDown_Moon 这种本机与洛谷不一样的情况可以试试洛谷 IDE 。

经本人试验,在洛谷 IDE 中,过不了第二个样例。疑似 printf 与 cout 产生奇怪的冲突,反正 cout 输出的东西排在 printf 之前。

所以把 printf 改了就能 AC 了。

#include<bits/stdc++.h>
using namespace std;
int n,cur,a,b,c;
char d;
main(){
    ios::sync_with_stdio(0);
    scanf("%d-%d-%d-%c",&a,&b,&c,&d);
    n+=a;
    n+=b/100*2+b%100/10*3+b%10*4;
    n+=c/10000*5+c%10000/1000*6+c%1000/100*7+c%100/10*8+c%10*9;
    n%=11;
    //cout<<n<<" "<<d;
    //if(n==t)cout<<"cmsndhhhd";
    int t=d-48;
    if(n==10&&d=='X')cout<<"Right";
    else if(n==t)cout<<"Right";
    else{
        //printf("%d-%d-%d-",a,b,c);
        cout << a << "-" << b << "-" << c << "-";
        if(n==10)cout<<"X";
        else cout<<n;
    } 
}

|