diva233 @ 2023-07-17 13:20:56
我的想法是先用一个数组“a”存储带有分隔符的ISBN码
#include <bits/stdc++.h>
using namespace std;
int main(){
string a,b;
int test_1=1,sum=0;
cin >>a;
再把不带有分隔符的数组转存到数组“b“中
for(int i=1;i<=a.size();i++){
if(a[i]!='-'){
b[test_1]=a[i];
test_1++;
}
}
然后用一个变量“sum”存储各位上的和
for(int i=1;i<b.size();i++){
sum+=b[i]*i;
}
最后检验输出
if(sum%11==a[a.size()]){
cout <<"Right";
}
else if(sum%11==10&&a[a.size()]=='X'){
cout <<"Right";
}
else{
cout <<a<<sum%11;
}
return 0;
}
大佬救我
by diva233 @ 2023-07-17 13:21:47
完整代码
#include <bits/stdc++.h>
using namespace std;
int main(){
string a,b;
int test_1=1,sum=0;
cin >>a;
for(int i=1;i<=a.size();i++){
if(a[i]!='-'){
b[test_1]=a[i];
test_1++;
}
}
for(int i=1;i<b.size();i++){
sum+=b[i]*i;
}
if(sum%11==a[a.size()]){
cout <<"Right";
}
else if(sum%11==10&&a[a.size()]=='X'){
cout <<"Right";
}
else{
cout <<a<<sum%11;
}
return 0;
}
by InversionShadow @ 2023-07-17 13:26:08
字符串下标从 0 开始
by Kedit2007 @ 2023-07-17 13:40:33
可随机访问的容器(vector
, string
等)的下标从 0
开始。顺便,如果需要访问最后一个元素,可以直接使用 s.back()
,其中 s
是一个 vector
, string
等。