全re,求调找问题

P1055 [NOIP2008 普及组] ISBN 号码

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;
}

|