spindrift @ 2023-11-09 19:37:43
#include<stdio.h>
int main() {
char a[14];
char ch;
int i = 0;
int sum = 0;
int mod;
char b;
while (ch = getchar(), ch != '\n') {
if (ch != '-') { //读入所有的数字
a[i] = ch;
i++;
}
}
a[i] = '\0';
for (i = 1; i <= 9; i++) { //将所有数字依次乘1-9,和为sum
sum += (a[i - 1] - '0') * i;
}
mod = sum % 11; //mod为余数
if (mod == 10) { //将正确的识别码储存在b中
b = 'X';
}
else b = mod + '0';
if (b == a[9]) {
printf("Right");
}
else {
a[9] = b; //用正确的识别码代替a[9],a[9]为识别码应在的位置
printf("%c-%c%c%c-%c%c%c%c%c-%c", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]);
}
return 0;
}
by inarticulate_stupid @ 2023-11-16 21:27:59
@spindrift 你上面b==a[9]
应该改为b==a[8]
,毕竟你的a
下标是从0开始的
by spindrift @ 2023-11-17 15:08:09
@zhengdaxin 好的 谢谢啦