liuqishijian @ 2022-01-20 15:06:40
#include <stdio.h>
int main()
{
char a[14],c;
gets(a);
int b=0,j=1;
for(int i=0;i<12;i++)
{
if(a[i]!='-')
b+=(a[i]-'0')*j++;
}
if(b%11==10)
c='X';
else
c=b%11+'0';
if(c==a[12])
printf("Right");
else{
a[12]=c;
puts(a);
}
return 0;
by coldy_rainy @ 2022-01-20 15:21:50
@liuqishijian
不能用gets!!!
by coldy_rainy @ 2022-01-20 15:23:46
@liuqishijian
这样:
#include <stdio.h>
int main()
{
char a[14],c;
fgets(a,sizeof(a),stdin);
int b=0,j=1;
for(int i=0;i<12;i++)
{
if(a[i]!='-')
b+=(a[i]-'0')*j++;
}
if(b%11==10)
c='X';
else
c=b%11+'0';
if(c==a[12])
printf("Right");
else{
a[12]=c;
puts(a);
}
return 0;
}
把get(a);改成fgets(a,sizeof(a),stdin);
效果一样,但不会炸
by liuqishijian @ 2022-01-20 15:26:36
牛啊
by coldy_rainy @ 2022-01-20 15:26:53
@liuqishijian
全绿
洛谷是在linux系统下工作的,而linux系统用gets会炸,因此会错
您调试的场所是windows系统,因此在您的电脑下会正确✔
by liuqishijian @ 2022-01-20 15:32:11
@penhaochen 难怪如此,刚才我试了一下scanf也能成功。