原来70,开O2满分,求大佬指点

P1055 [NOIP2008 普及组] ISBN 号码

yahxg @ 2021-08-04 20:17:55

#include <stdio.h>
int main() {
    char a[12];
    int b[8],ma;
    for(int i=0;i<13;i++){
        scanf("%c",&a[i]);
    }
    b[0]=a[0]-'0';
    b[1]=a[2]-'0';
    b[2]=a[3]-'0';
    b[3]=a[4]-'0';
    b[4]=a[6]-'0';
    b[5]=a[7]-'0';
    b[6]=a[8]-'0';
    b[7]=a[9]-'0';
    b[8]=a[10]-'0';
    ma=b[0]*1+b[1]*2+b[2]*3+b[3]*4+b[4]*5+b[5]*6+b[6]*7+b[7]*8+b[8]*9;
    ma=ma%11;
    if(ma==10&&a[12]=='X'){
        printf("Right");
    }
    else if(ma==10&&a[12]!='X') {
        for(int i=0;i<12;i++){printf("%c",a[i]);}
        printf("X");
        }
    else if(ma==a[12]-'0')
    {printf("Right");}
    else {
            for(int i=0;i<12;i++){printf("%c",a[i]);}
            printf("%d",ma);
    }
    return 0;
}

如题如题


by —路人甲— @ 2021-08-04 20:28:19

正常情况,习惯就好


by dino @ 2021-08-04 20:32:49

你貌似可以用循环然后if(a >= '0' && a <= '9') , 我想你帮我问候一下你的手


by tjhdyhj @ 2021-08-04 20:49:30

我电脑调试时#1中

a[12]-'0'==-44
a[12]==4'\004'

莫名奇妙……


|