求助!!!

P1055 [NOIP2008 普及组] ISBN 号码

lzh009 @ 2023-05-01 13:45:23

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

by xiaoshumiao @ 2023-05-30 17:40:01

o=fu%11+1;

    cout<<a[1]<<"-"<<a[2]<<a[3]<<a[4]<<"-"<<a[5]<<a[6]<<a[7]<<a[8]<<a[9]<<"-"<<(int)o;

应该为

o=fu%11;

        if(o<10) {cout<<a[1]<<"-"<<a[2]<<a[3]<<a[4]<<"-"<<a[5]<<a[6]<<a[7]<<a[8]<<a[9]<<"-"<<(int)o;}
        else {cout<<a[1]<<"-"<<a[2]<<a[3]<<a[4]<<"-"<<a[5]<<a[6]<<a[7]<<a[8]<<a[9]<<"-"<<"X";}

还有,建议不要把fu定义成char型


|