无奈之白 @ 2021-08-22 08:56:06
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
int k=1,b=0;
char a[1001];
cin>>a;
for(int i=0;i<12;i++){
if(a[i]!='-'){
b+=(a[i]-'0')*k;
k++;
}
}
if(b%11==10){
a[12]='X';
for(int i=0;i<13;i++)cout<<a[i];
return 0;
}
else if(b%11==(a[12]-'0')){
cout<<"Right";
return 0;
}
else {
a[12]=b%11+'0';
for(int i=0;i<13;i++)cout<<a[i];
return 0;
}
return 0;
}
by jixiao_龙之舞 @ 2021-08-22 21:19:04
错误点在于判断识别码为“X”时,没有“Right ”的选项
例:
输入"0-500-00000-X"的时候,
输出
0-500-00000-X
然而实际上应该输出“Right”。
建议修改为:
if(b%11==10){
if(a[12]=='X')
cout<<"Right";
else
{
a[12]='X';
for(int;i=0;i<13;i++)
cout<<a[i];
}
return 0;
}