第二个测试点的数据为0-670-82162-X,在自己的编译器上试过,输出应该是对的,但是不知道为什么一直不能通过。中间注释掉的时之前用来调试的代码。
#include<stdio.h>
int main(){
char a[14]={0},b[11]={0};
int i,n=0,sum=0;
scanf("%s",&a);
//printf("a=%s\n",a);
for (i=0;i<14;i++){
if (a[i]=='-')
continue;
else {
b[n]=a[i];
n++;
}
}
//printf("b=%s\n",b);
for (i=0;i<9;i++){
sum+=(b[i]-'0')*(i+1);
}
//printf("b[9]=%c,sum=%d,sum%11=%d\n",b[9],sum,sum%11);
if (b[9]=='X'){
//printf("1\n");
if (sum%11==10)
printf("Right");
else{
a[12]=sum%11+'0';
printf("%s",a);
}
}
else{
if ((b[9]-'0')==sum%11)
printf("Right");
else{
if (sum%11==10)
a[12]='X';
a[12]=sum%11+'0';
printf("%s",a);
}
}
return 0;
}