突然发现没写注释,说明一下,0的ASCII码是48,X的ASCII码是88.
by originate @ 2017-11-08 17:23:17
为什么要写a[12]=b+78这一句啊
还有就是你在这一句后面没有输出啊
其实你大可不必把X化成整数啊,如果a[12]是X直接判断b是不是10就可以了
最后记得要输出,不管怎样都是有输出的
顺便附上代码,很久以前写的,跟你的差不多
```cpp
#include<iostream>
#include<cstring>
using namespace std;
int main(){
string str;
int num[13],sum1,sum2;
cin>>str;
for(int i=0;i<13;i++)
num[i]=str[i]-48;
sum1=num[0]*1+num[2]*2+num[3]*3+num[4]*4+num[6]*5+num[7]*6+num[8]*7+num[9]*8+num[10]*9;
sum2=sum1%11;
if((num[12]==sum2)||((str[12]=='X')&&(sum2==10)))
cout<<"Right";
else{
for(int i=0;i<12;i++)
cout<<str[i];
if(sum2==10)
cout<<'X';
else
cout<<sum2;
}
return 0;
}
```
by Hugo_Minion @ 2017-11-08 18:18:24
其实可以使用```cpp scanf("%1d",&a); ```来做到只读一位的数字
by Hades18 @ 2017-11-08 18:48:23
竟然有个X
by Friedrichqi @ 2017-11-10 21:07:56