RE求助

P1055 [NOIP2008 普及组] ISBN 号码

guorunduo @ 2023-10-11 18:53:50


#include<bits/stdc++.h>
using namespace std;
int main(){
    char a[15];
    char s;
    scanf("%c-%c%c%c-%c%c%c%c%c-%c",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8]);
    int q=0;
    for(int i=0;i<=8;i++){
        q+=(i+1)*(int)(a[i]-'0');
    }
    q=q%11;
    if(q==10){
        s='X';
    }
    else{
        s=(char)q+'0';
    }
    if(s==a[8]){
        cout<<"Right";
    }
    else{
        printf("%c-%c%c%c-%c%c%c%c%c-%c",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],s);
    }
}

by Jarstick @ 2023-10-11 19:44:40

我给你找了半天错,结果发现你是个人机

你的代码共有三处错误:

1.

scanf("%c-%c%c%c-%c%c%c%c%c-%c",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8]);

在这一行中,有一个非常明显的错误:

少输入了一个数!!

应改为

scanf("%c-%c%c%c-%c%c%c%c%c-%c",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&a[9]);

2.

相应地将if(s==a[8])改为if(s==a[9])

3.

相应地将输出改为

printf("%c-%c%c%c-%c%c%c%c%c-%c",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],s);

完整代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    char a[15];
    char s;
    scanf("%c-%c%c%c-%c%c%c%c%c-%c",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&a[9]);
    int q=0;
    for(int i=0;i<=8;i++){
        q+=(i+1)*(int)(a[i]-'0');
    }
//  cout<<q<<endl;
    q=q%11;
    if(q==10){
        s='X';
    }
    else{
        s=(char)q+'0';
    }
    if(s==a[9]){
        cout<<"Right";
    }
    else{
        printf("%c-%c%c%c-%c%c%c%c%c-%c",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],s);
    }
}

by Jarstick @ 2023-10-11 19:45:07

@ guorunduo


by guorunduo @ 2023-10-11 19:54:10

哦哦,没想到我真是人机


|