作为刚接触不到三个星期的C语言菜鸟来说这道题有点难,但功夫不负有心人,终于是解决了
以下是代码
#include<stdio.h>
int main()
{
char arr[14];
int i = 0;
int x = 1;
int c = 0;
int sum = 0;
scanf("%s", &arr);//输入一个长为14的字符串
if (arr[1] == '-' && arr[5] == '-' && arr[11] == '-')//0-670-82162-4
{
for (i = 0; i < 11; i++)
{
if (arr[i] == '-')
{
continue;
}
if (arr[i] >= '0' && arr[i] <= '9')
{
c = arr[i] - '0';
sum = sum + c * x;
x++;
}
}
//以下代码可以简化
if (arr[12] == 'X')//余数为 10,则最后为X
{
if (sum % 11 == 10)
printf("Right");
else
{
arr[12] = sum % 11+'0';
printf("%s", arr);
}
}
else
{
if ((sum % 11) == (arr[12]-'0'))
printf("Right");
else
{
if (sum % 11 < 10)//易遗漏
{
arr[12] = sum % 11 + '0';
}
else
{
arr[12] = 'X';
}
printf("%s", arr);
}
}
}
return 0;
}
就这样啦,写的有点麻烦