juruo_wzq_129 @ 2024-07-12 22:11:54
#include<bits/stdc++.h>
using namespace std;
const int N = 15;
int sum;
int main(){
char a[N + 5];
for(int i=1;i<=13;i++){
cin>>a[i];
if(a[i]!='-' && i!=13){
sum = sum + i * (a[i] - '0');
}
}
if(sum%11 == (a[13] - '0')&&(sum%11 == 10 && a[13] == 'X')){
cout<<"Right"<<endl;
}
else {
if(sum%11 == 10){
a[13] = 'X';
}
else a[13] = char(sum%11);
for(int i=1;i<=13;i++){
cout<<a[i];
}
cout<<endl;
}
return 0;
}
by Sky_Aurora @ 2024-07-15 18:37:28
这里帮您看了下,错误还是不少的,经过我亲手调试后总结2个错误:
13行中,这2个条件您可以自己算下,用&&
连接的话,这个条件是永远无法成立的,这里应改为||
;
ASCII码出了问题,注意数字与字符格式之间的ASCII转换。
再加一个提醒:用char数组没问题,但如果您使用了string,请记住:string自动读入的下标是从0
开始的,下标为n - 1
,需要留意一下。\
最后,求一个关注,谢谢!