nbq202412904430 @ 2024-09-11 23:23:53
#include<stdio.h>
int main()
{
int mod[11]={0,1,2,3,4,5,6,7,8,9,'X'};
char m[11];
int y=0,b[11];
scanf("%c-%c%c%c-%c%c%c%c%c-%c",&m[0],&m[1],&m[2],&m[3],&m[4],&m[5],&m[6],&m[7],&m[8],&m[9]);
for(int i=0;i<9;i++)
{
b[i]=m[i]-'0';
y=y+b[i]*(i+1);
}
if(m[9]>='0'&&m[9]<='9')b[9]=m[9]-'0';
else b[9]='X';
y=y%11;
if(b[9]==y)printf("Right");
else
{
if(y==10&&m[9]=='X')printf("Right");
else printf("%d-%d%d%d-%d%d%d%d%d-%d",b[0],b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],mod[y]);
}
return 0;
}
by sunhewei @ 2024-09-15 16:53:09
有可能是‘X'属于char类型 而mod数组是int类型 输出的时候出了点问题 可以先输出前面的 最后一位单独做判断 然后输出