字符数组刚好是13时
#include<iostream>
using namespace std;
int main()
{
char isbn[13];
scanf("%s",isbn);
int sum=0,b=1;
for(int i=0;i<12;i++)
{
if(isbn[i]-48>=0&&isbn[i]-48<=9)
{
sum+=(isbn[i]-48)*b;
b++;
}
}
if(sum%11==isbn[12]-48||(sum%11==10&&isbn[12]=='X')) cout<<"Right";
else
{
if(sum%11!=10) isbn[12]=sum%11+48;
else isbn[12]='X';
cout<<isbn;
}
}
然后我把字符数组开大到15后就通过了
#include<iostream>
using namespace std;
int main()
{
char isbn[15];
scanf("%s",isbn);
int sum=0,b=1;
for(int i=0;i<12;i++)
{
if(isbn[i]-48>=0&&isbn[i]-48<=9)
{
sum+=(isbn[i]-48)*b;
b++;
}
}
if(sum%11==isbn[12]-48||(sum%11==10&&isbn[12]=='X')) cout<<"Right";
else
{
if(sum%11!=10) isbn[12]=sum%11+48;
else isbn[12]='X';
cout<<isbn;
}
return 0;
}
搞不懂为什么