lanyaohhh @ 2023-10-29 11:41:23
#include<iostream>
using namespace std;
int main ()
{
char a[13];int b,s,e,c;
for(int i=0;i<13;i++) cin>>a[i];
for(int i=0;i<13;i++)
{
if(a[i]!='-')
{
int b=a[i];b-=48;
s=s+b*e;
e++;
}
if(i==12&&a[12]!='X')
{
int c=a[i];c-=48;
}
if(i==12&&a[12]=='X')
{
int c=10;
}
}
e=s%11;
if(e==c) cout<<"Right"<<endl;
else
{
for (int i=0;i<12;i++) cout<<a[i];
if(e!=10) cout<<e<<endl;
else cout<<'X'<<endl;
}
return 0;
}
by zhang_feng_rui @ 2023-10-29 12:15:35
不知道你样例是怎么过的,可能是凑巧吧
解决方法:s加的时候再加个判断就行
if(a[i]!='-'&&i!=12)
{
b=a[i];b-=48;
s=s+b*e;
e++;
}
其他问题:e变量是从1开始乘的,s的初始值也要设一下
char a[13];int b,s=0,e=1,c;
问题就这些,改完即可AC
#include<iostream>
using namespace std;
int main ()
{
char a[13];int b,s=0,e=1,c;
for(int i=0;i<13;i++) cin>>a[i];
for(int i=0;i<13;i++)
{
if(a[i]!='-'&&i!=12)
{
b=a[i];b-=48;
s=s+b*e;
e++;
}
if(i==12&&a[12]!='X')
{
c=a[i];c-=48;
}
if(i==12&&a[12]=='X')
{
c=10;
}
}
e=s%11;
if(e==c) cout<<"Right"<<endl;
else
{
for (int i=0;i<12;i++) cout<<a[i];
if(e!=10) cout<<e<<endl;
else cout<<'X'<<endl;
}
return 0;
}
我也蒟蒻,说错请改正
by lanyaohhh @ 2023-10-29 22:04:53
@zhang_feng_rui
我蒟蒻的哎
if(a[i]!='-')
{
int b=a[i];b-=48;
s=s+b*e;
e++;
}
if(i==12&&a[12]!='X')
{
int c=a[i];c-=48;
}
if(i==12&&a[12]=='X')
{
int c=10;
}
"int"
答:不去有错的