OobugoO @ 2023-02-02 16:21:24
下了第二个是对的,是不是输出字符串有问题?
#include <stdio.h>
int main()
{
int sum=0;
char a[13];
scanf("%s",a);
int i=1;
int j=0;
char b;
while(j<11)
{
if(a[j]!='-')
{
sum+=((int)a[j]-48)*i;
i++;
}
j++;
}
b=(sum%11!=10)?(char)(sum%11+48):'X';
if(a[12]==b)
printf("Right");
else
{
a[12]=b;
printf("%s",a);
}
return 0;
}
by Po7ed @ 2023-02-02 16:41:54
@OobugoO C风格字符串(char数组)结尾有一个\0
,你数组开小了,结尾没有\0
,导致输出错误。
by Po7ed @ 2023-02-02 16:42:37
将char a[13];
改成char a[14];
即可
by Po7ed @ 2023-02-02 16:48:48
by OobugoO @ 2023-02-02 17:18:39
@Po7ed1 过了,万分感谢