qgmzzn @ 2021-10-04 21:34:47
#include<iostream>
using namespace std;
int main(){
char a[13];
cin>>a;
int b[9];
int j=0;
for(int i=0;i<12;i++){
if(a[i]=='-')continue;
b[j]=a[i]-'0';
++j;
}
int sum=0;
for(int i=0;i<9;i++){
sum+=b[i]*(i+1);
}
if(sum%11==(a[12]-'0')||sum%11==10&&a[12]=='X')cout<<"Right";
if((sum%11!=(a[12]-'0')&&sum%11!=10)||(sum%11==10&&a[12]!='X')) {
if(sum%11==10)
a[12]='X';
else
a[12]=(sum%11+'0');
cout<<a;
}
}//30分,看不出哪里不对劲QAQ
by xutongwei @ 2021-10-04 22:36:05
@qgmzzn
说句闲话,窝用你的代码,把 char a[13]
改成了 string a
,又加上了 string 的头文件,就过了。
然后,我试着把 a[13] 改成 a[14] ,结果也能过……
所以似乎是些玄学的越界问题?(怀疑与直接草率的 cin >> a;
与 cout << a;
有关)