l1634496141 @ 2022-11-27 10:47:06
不知道为什么会re
#include<stdio.h>
int main()
{
char ch[15],n;
int i=0,sum=0,num=1;
while(1)
{
scanf("%c",&n);
if(n=='\n') break;
ch[i]=n;
i++;
}
for(i=0;i<12;i++)
{
if(ch[i]!='-')
{
sum=sum+(ch[i]-'0')*num;
num++;
}
}
if(sum%11==ch[12]-'0'||(sum%11==10&&ch[12]=='X'))
printf("Right");
else if(sum%11!=ch[12]-'0')
{
for(i=0;i<13;i++)
{
if(i!=12)
printf("%c",ch[i]);
else
{
if(sum%11==10)
printf("X");
else
printf("%d",sum%11);
}
}
}
return 0;
by jnyz2021109122116 @ 2022-11-27 12:18:37
@l1634496141
if(n=='\n') break;
数据里没有回车,因此不能用回车作为判断结束的标志
因为长度已知所以可以使用for循环
至于为什么本地正确,因为你在输入数据的时候是以回车结束的
by l1634496141 @ 2022-11-27 17:09:14
@jnyz2021109122116 感谢大佬,ac了