xiaoxiaogui @ 2024-08-10 00:05:39
#include<stdio.h>
int main()
{
char a[13];
int sum=0,s[12],j=1;
for(int i=0;i<13;i++)
{
scanf("%c",a[i]);
}
for(int i=0;i<=12;i++)
{
if(a[i] != '-')
{
sum+=(a[i]-'0')*j;
}
}
if( sum %11 ==a[13]-48 || sum%11==10)
printf("Right");
else
{
for(int i=0;i<12;i++)
{
printf("%c",a[i]);
}
if(sum%11==10)
printf("X");
else
printf("%d",sum%11);
}
return 0;
}
洛谷不是很能看懂,报的错误类型
by Lucky_dpy @ 2024-08-10 07:30:17
@xiaoxiaogui scanf 没加 &
by Lucky_dpy @ 2024-08-10 07:37:40
@xiaoxiaogui 其次你的代码也有问题,会WA,每次计算 sum 没有 j++,a 数组下标最多 12 有些写成了 13,判断 Right 缺少 X 情况
#include<stdio.h>
int main()
{
char a[13];
int sum=0,j=1;
for(int i=0;i<13;i++)
{
scanf("%c",&a[i]);
}
for(int i=0;i<12;i++)
{
if(a[i] != '-')
{
sum+=(a[i]-'0')*j;
j++;
}
}
if( sum %11 ==a[12]-'0' || (sum%11==10&&a[12]=='X'))
printf("Right");
else
{
for(int i=0;i<12;i++)
{
printf("%c",a[i]);
}
if(sum%11==10)
printf("X");
else
printf("%d",sum%11);
}
return 0;
}