Konnyaku_q @ 2023-09-13 20:23:23
0分,觉的没啥不对啊
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
using namespace std;
long long a,b[20];
char s[15],f[6];
int main()
{
cin>>s[1]>>f[1]>>s[2]>>s[3]>>s[4]>>f[2]>>s[5]>>s[6]>>s[7]>>s[8]>>s[9]>>f[3]>>s[10];
if(s[10]=='X')
{
b[10]=10;
}
for(int i=1;i<=10;i++)
{
b[i]=s[i]-'0';
a+=b[i]*i;
}
a=a%11;
if(b[10]==a)
{
cout<<"Right"<<endl;
return 0;
}
else
{
if(a>=10)
{
cout<<s[1]<<f[1]<<s[2]<<s[3]<<s[4]<<f[2]<<s[5]<<s[6]<<s[7]<<s[8]<<s[9]<<f[3]<<"X";
}
cout<<s[1]<<f[1]<<s[2]<<s[3]<<s[4]<<f[2]<<s[5]<<s[6]<<s[7]<<s[8]<<s[9]<<f[3]<<a;
}
}
by TuNingyou2341 @ 2023-09-13 20:42:43
下面加个else 第一眼看过去看出来的 再不行回我(因为我比较懒)
by Konnyaku_q @ 2023-09-13 20:44:06
@TuNingyou2341 不行
by xuchuhan @ 2023-09-13 20:44:16
@Konnyaku_q 您算识别码时算上了 s[10]
,实际上不要算,可以改为:
for(int i=1;i<=9;i++)
{
b[i]=s[i]-'0';
a+=b[i]*i;
}
by xuchuhan @ 2023-09-13 20:45:21
同时 s[10]
不为 X
时也要算 b[10]
。
by Konnyaku_q @ 2023-09-13 20:46:11
@xuchuhan 结果是对了但他不输出Right
by Konnyaku_q @ 2023-09-13 20:48:03
@xuchuhan 请问您说“同时 s[10] 不为 X 时也要算 b[10]。”是什么意思
by xuchuhan @ 2023-09-13 20:49:59
@Konnyaku_q 不应该呀,您看看您把 b[10]
改了没有。
就这样改:
if(s[10]=='X')
{
b[10]=10;
}
变成
if(s[10]=='X')
{
b[10]=10;
}
else{
b[10]=s[10]-'0';
}
by Konnyaku_q @ 2023-09-13 20:56:16
@xuchuhan 栓Q