c,为啥一个点测试是对的,却过不了

P1055 [NOIP2008 普及组] ISBN 号码

lt1526679338 @ 2022-12-30 11:57:44

#include<stdio.h>
int main(){
    char a[13];
    int i,sum=0,k=1;
    for(i=0;i<13;i++)
        scanf("%c",&a[i]);
    for(i=0;i<11;i++){
        if(a[i]!='-'){
            int b=a[i];
            b=b-48;
            sum=b*k+sum;
            k++;
        }
    }
    sum=sum%11;
    int t=a[12]-48;
    if(sum==t&&t==0&&t<=9||sum==10&&a[12]=='X'){
        printf("Right");

    }
    else {
        for(i=0;i<12;i++)
            printf("%c",a[i]);
        if(sum==10)
            printf("X");
        else 
            printf("%d",sum);
    }
    return 0;
} 

by 151guo @ 2023-01-04 10:22:22

开始a[12]是X要处理


|