Haidde @ 2024-02-18 17:10:55
#include<stdio.h>
int main()
{
char s[15];
int i,j,a[11]={0},n=0;
gets(s);
for(i=0,j=0;i<13;i++)
if(s[i]>=48&&s[i]<=57)
{
j++;
a[j]=s[i]-48;
}
for(i=1;i<=9;i++)
n+=(i*a[i]);
if(n%11==a[10])
printf("Right");
else
{
s[12]=n%11+48;
printf("%s",s);
}
return 0;
}
by Loyal_Soldier @ 2024-02-19 10:29:31
@Haidde C++AC代码:
#include<bits/stdc++.h>
using namespace std;
int main() {
int a,b,c,b1,b2,b3,c1,c2,c3,c4,c5,y;
char s;
scanf("%d-%d-%d-%c",&a,&b,&c,&s);
b1=b/100;
b2=b/10%10;
b3=b%10;
c1=c/10000;
c2=c/1000%10;
c3=c/100%10;
c4=c/10%10;
c5=c%10;
y=(a*1+b1*2+b2*3+b3*4+c1*5+c2*6+c3*7+c4*8+c5*9)%11;
if(s=='X'){
if(y==10){
cout<<"Right";
}
else{
printf("%d-%d-%d-%d",a,b,c,y);
}
}
else{
s=s-48;
if(y==10){
printf("%d-%d-%d-X",a,b,c);
}
else if(y==s){
cout<<"Right";
}
else{
printf("%d-%d-%d-%d",a,b,c,y);
}
}
return 0;
}
by LSQS @ 2024-02-20 22:37:14
@Haidde 你好像是审题没有弄仔细吼,题目说如果识别码是10的话要改输出成大写字母X的
by Haidde @ 2024-02-20 22:55:38
@LSQS 好的,好的,```c
int main() { char s[15]; int i,j,a[11]={0},n=0; gets(s); for(i=0,j=0;i<13;i++) if(s[i]>=48&&s[i]<=57) { j++; a[j]=s[i]-48; } for(i=1;i<=9;i++) n+=(i*a[i]); if(n%11==a[10]) printf("Right"); else { if(n%11==10) s[12]='X'; else s[12]=n%11+48; printf("%s",s); } return 0;
}
这个地方确实没注意,谢谢大佬,不过改过之后还是只有80分,可能我哪里还有点错误。
by Haidde @ 2024-02-20 23:04:48
#include<stdio.h>
int main()
{
char s[15];
int i,j,a[11]={0},n=0;
gets(s);
for(i=0,j=0;i<13;i++)
if(s[i]>=48&&s[i]<=57)
{
j++;
a[j]=s[i]-48;
}
for(i=1;i<=9;i++)
n+=(i*a[i]);
if(n%11==a[10])
printf("Right");
else
{
if(n%11==10)
s[12]='X';
else s[12]=n%11+48;
printf("%s",s);
}
return 0;
}
by LSQS @ 2024-02-21 13:33:20
@Haidde sorry,我想了好久也没想出来为啥子。还有为什么我复制你的代码提交题目为什么会编译错误啊QAQ
by Haidde @ 2024-02-23 16:29:29
@LSQS 啊?这样啊,不知道嘞,我正常显示是可以运行的,不过还是只有八十分