求助,80分,4,7错了,不知道为什么

P1055 [NOIP2008 普及组] ISBN 号码

hebaiyuzhiri @ 2023-01-17 00:25:05


#include <stdio.h>
int main()
{
    char a[14] = {};
    int sum = 0,x=1,i,b,j;
    for (i = 0;i < 13;i++)
    {
        scanf("%c", &a[i]);

    }
    for (i = 0;i < 11;i++)
    {
        if (a[i] != '-')
        {
            b = a[i] - 48;
            sum += b * x;
            x++;
        }
    }
    int c = a[12] - 48;
    j=sum%11;
    if (j == c)
    {
        printf("Right");
    }
    else
    {
        if (j == 10)
        {
            for (i = 0;i < 13;i++)
            {
                if (i == 12)
                {
                    printf("X");
                }
                else
                {
                    printf("%c", a[i]);
                }
            }
        }
        else
        {
            for (i = 0;i < 13;i++)
            {

                if (i == 12)
                {
                    printf("%d",sum%11);
                }
                else
                {
                   printf("%c", a[i]);
                }

        }
    }

    return 0;
}
}

by liuyi0905 @ 2023-01-29 16:54:05

@hebaiyuzhiri
修改代码

#include <stdio.h>
int main()
{
    char a[14] = {};
    int sum = 0,x=1,i,b,j;
    for (i = 0;i < 13;i++)
    {
        scanf("%c", &a[i]);

    }
    for (i = 0;i < 11;i++)
    {
        if (a[i] != '-')
        {
            b = a[i] - 48;
            sum += b * x;
            x++;
        }
    }
    int c;
    if(a[12] == 'X')
    {
        c = 10;
    }
    else
    {
        c = a[12]-48;
    }
    j=sum%11;
    if (j == c)
    {
        printf("Right");
    }
    else
    {
        if (j == 10)
        {
            for (i = 0;i < 13;i++)
            {
                if (i == 12)
                {
                    printf("X");
                }
                else
                {
                    printf("%c", a[i]);
                }
            }
        }
        else
        {
            for (i = 0;i < 13;i++)
            {

                if (i == 12)
                {
                    if(sum%11 == 10)
                    {
                        printf("X");
                    }
                    else
                    {
                        printf("%d",sum%11);
                    }
                }
                else
                {
                   printf("%c", a[i]);
                }

        }
    }

    return 0;
}
}

|