mrHCT @ 2022-11-21 17:39:22
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
char a[20];
int b[20];
int sum;
int j=0;
gets(a);
for(int i=0;i<strlen(a);i++)
{
if(a[i]!='-'&&a[i]!='X')
{
b[j]=a[i]-48;
j++;
}
}
sum=b[0]+b[1]*2+b[2]*3+b[3]*4+b[4]*5+b[5]*6+b[6]*7+b[7]*8+b[8]*9;
sum=sum%11;
if(b[9]==sum||(sum==10&&a[12]=='X'))
{
cout<<"Right"<<endl;
}
else
{
for(int i=0;i<strlen(a)-1;i++)
{
cout<<a[i];
}
if(sum==10)
{
cout<<"X";
}
else
{
cout<<sum;
}
}
return 0;
}
by Elairin176 @ 2022-11-21 17:56:24
《gets》
by Elairin176 @ 2022-11-21 17:57:24
考场上不要写 gets,不然爆零等着你
by Elairin176 @ 2022-11-21 17:58:06
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
char a[20];
int b[20];
int sum;
int j=0;
cin>>a;
for(int i=0;i<strlen(a);i++)
{
if(a[i]!='-'&&a[i]!='X')
{
b[j]=a[i]-48;
j++;
}
}
sum=b[0]+b[1]*2+b[2]*3+b[3]*4+b[4]*5+b[5]*6+b[6]*7+b[7]*8+b[8]*9;
sum=sum%11;
if(b[9]==sum||(sum==10&&a[12]=='X'))
{
cout<<"Right"<<endl;
}
else
{
for(int i=0;i<strlen(a)-1;i++)
{
cout<<a[i];
}
if(sum==10)
{
cout<<"X";
}
else
{
cout<<sum;
}
}
return 0;
}
把gets改成cin就A了 @mrHCT
by mrHCT @ 2022-11-22 15:17:32
@destructor 为什么不能用gets啊,这道题不是不用空格符吗
by Elairin176 @ 2022-11-22 17:38:25
@mrHCT gets 有溢出风险,C++11之后就没了
by Liujiayuan3 @ 2022-11-22 21:45:02
可以的,只要头文件写了就行。