guorunduo @ 2023-10-11 18:53:50
#include<bits/stdc++.h>
using namespace std;
int main(){
char a[15];
char s;
scanf("%c-%c%c%c-%c%c%c%c%c-%c",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8]);
int q=0;
for(int i=0;i<=8;i++){
q+=(i+1)*(int)(a[i]-'0');
}
q=q%11;
if(q==10){
s='X';
}
else{
s=(char)q+'0';
}
if(s==a[8]){
cout<<"Right";
}
else{
printf("%c-%c%c%c-%c%c%c%c%c-%c",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],s);
}
}
by Jarstick @ 2023-10-11 19:44:40
你的代码共有三处错误:
scanf("%c-%c%c%c-%c%c%c%c%c-%c",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8]);
在这一行中,有一个非常明显的错误:
应改为
scanf("%c-%c%c%c-%c%c%c%c%c-%c",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&a[9]);
相应地将if(s==a[8])
改为if(s==a[9])
相应地将输出改为
printf("%c-%c%c%c-%c%c%c%c%c-%c",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],s);
完整代码
#include<bits/stdc++.h>
using namespace std;
int main(){
char a[15];
char s;
scanf("%c-%c%c%c-%c%c%c%c%c-%c",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&a[9]);
int q=0;
for(int i=0;i<=8;i++){
q+=(i+1)*(int)(a[i]-'0');
}
// cout<<q<<endl;
q=q%11;
if(q==10){
s='X';
}
else{
s=(char)q+'0';
}
if(s==a[9]){
cout<<"Right";
}
else{
printf("%c-%c%c%c-%c%c%c%c%c-%c",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],s);
}
}
by Jarstick @ 2023-10-11 19:45:07
@ guorunduo
by guorunduo @ 2023-10-11 19:54:10
哦哦,没想到我真是人机