1. #include<stdio.h>
  2. int abc(int a, int b, int c)//返回前9个数分别乘1到9的和
  3. {
  4.     int ret = 0;
  5.     int i = 0;
  6.     int sum1 = a;
  7.     int sum2 = 0;
  8.     int sum3 = 0;
  9.     i = 4;
  10.     while (b)
  11.     {
  12.         ret = (b % 10) * (i--);
  13.         sum2 += ret;
  14.         b = b / 10;
  15.     }
  16.     i = 9;
  17.     while (c)
  18.     {
  19.         ret = (c % 10) * (i--);
  20.         sum3 += ret;
  21.         c = c / 10;
  22.     }
  23.     return sum1 + sum2 + sum3;
  24. }

  25. int main()
  26. {
  27.     int a = 0;
  28.     int b = 0;
  29.     int c = 0;
  30.     char d = 0;
  31.     scanf("%d-%3d-%5d-%c", &a, &b, &c, &d);//对应输入
  32.     int ret = abc(a, b, c);
  33.     if (d != 'X') //如果输入的识别码不为X,则数字(0)对应的字符('0')ascii相差48
  34.     {
  35.         if (ret % 11 == d - 48)
  36.         {
  37.             printf("Right");
  38.         }
  39.         else
  40.         {
  41.             if (ret % 11 == 10)
  42.                 printf("%d-%3d-%5d-X", a, b, c);
  43.             else
  44.                 printf("%d-%3d-%5d-%d", a, b, c, ret % 11);
  45.         }
  46.     }
  47.     else//如果输入的识别码为X,X的ascii为88,减去78得到数字10
  48.     {
  49.         if (ret % 11 == d - 78)
  50.         {
  51.             printf("Right");
  52.         }
  53.         else
  54.         {
  55.               printf("%d-%3d-%5d-%d", a, b, c, ret % 11);
  56.         }
  57.     }
  58.     return 0;
  59. }