CCF20131202——ISBN号码
代码如下:
#include <iostream>
using namespace std;
int main() {
char a[13]={'\0'};
int i,b[9]={0},count=0;
for(i = 0; i < 13; i++) {
cin >> a[i];
if(a[i]>='0'&&a[i]<='9'&&count<9)//将输入的9位字符类型的数字以整数的形式存入到数组b中
b[count++]=a[i]-'0';//转换为整数形式
}
int sum = 0, flag; //flag为识别码
for(i = 0; i < 9; i++)
sum += b[i]* (i+1);
flag = sum % 11;
if(flag==10)//余数为10的特殊情况
{
if(a[12]=='X')
cout<<"Right";
else{
a[12]='X';
for(i=0;i<13;i++)
cout<<a[i];
}
}
else if(flag==a[12]-'0')
cout<<"Right";
else{
a[12]=flag+'0';//整数型转换为字符型
for(i=0;i<13;i++)
cout<<a[i];
}
return 0;
}
在编写代码的过程中,开始忘记将整数转换为字符或者是字符转换为整数,导致错误。