求助 80分 不知道错哪儿了

P1055 [NOIP2008 普及组] ISBN 号码

wingsoul @ 2023-07-13 10:01:40

P1055 [NOIP2008 普及组] ISBN 号码

#include<iostream>
#include<string.h>
using namespace std;
char a[20];
int b;
int main()
{
    scanf("%s",&a);
    b = (a[0]-48)*1+(a[2]-48)*2+(a[3]-48)*3+(a[4]-48)*4+(a[6]-48)*5+(a[7]-48)*6+(a[8]-48)*7+(a[9]-48)*8+(a[10]-48)*9;
    b %= 11;    
    if(a[12]-48 == b)   cout<<"Right"<<endl;
    else 
    {
        if(b==10) 
        a[12] = 'X';
        else    a[12] = b+48;
        printf("%s",a);
    }
    return 0;
}

by maopaom @ 2023-07-14 11:40:48

要先特判b也就是识别码为10的情况,因为b=10的时候char是X,这样判断是不相等的,但是按照题目意思其实这个情况也是Right,代码中是漏了这个逻辑


by wingsoul @ 2023-07-14 15:08:14

@maopaom 通过了,谢谢谢谢!!!


|