求大佬看看,答案明明一样啊qaq

P1055 [NOIP2008 普及组] ISBN 号码

Q804401842 @ 2021-11-09 19:23:24

#include <stdio.h>
#include<math.h>

int main(){
    int a[9];
    char m,b[12],n;
    int i,j=0,sum,t;
for(i=0;i<12;i++){
    scanf("%c",&b[i]);
    if(b[i]!='-'){
        a[j]=b[i]-'0';
        j++;
    }
}
scanf("%c",&m);

for(i=0;i<9;i++){
    sum=sum+a[i]*(i+1);
}
t=sum%11;

if(t==10)
    n='X';
    else
    n=t;
m=m-'0';
if(m==n)
    printf("Right");
    else{
    for(i=0;i<12;i++){
        printf("%c",b[i]);
        }
        printf("%d",n);
    }

return 0;    

}


by French_Reformer @ 2021-11-09 19:29:23

万一m是‘X’呢


by Q804401842 @ 2021-11-10 19:48:42

@huangjianheng 谢谢,但是我把m改正后依然不对。有的时候有通过有的时候没有,每次有还不一样


by French_Reformer @ 2021-11-10 21:18:40

这个代码有些混乱,定义的n是char类型,却把整型的t赋给n,输出n时又用%d,万一n是'X'呢。建议运算时都用整型,输出再判断


|