求助,为什么会0分

P1055 [NOIP2008 普及组] ISBN 号码

GNOH @ 2022-03-18 16:36:56

#include<stdio.h>
int main()
{
    int i,j=0,X;
    int a[13];
    char s[13];
    scanf("%s",&s);
    for(i=0;i<13;i++)
    {
        if(i==1||i==5||i==11)
            continue;
        a[j]=s[i]-'0';
        j++;
    }
    for(i=0;i<j-1;i++)
    {
    //  printf("%d",a[i]); 
        X+=a[i]*(i+1);  
    }
    X=X%11;
//  printf("%d\n",X);
    if(X==10)
    {
        if(s[12]=='X')
            printf("Right");
        else
        {
            s[12]='X';
            printf("%s",s);
        }
    }
    else
    {
        if(a[9]==X)
        {
            printf("Right");
        }
        else
        {
            s[12]=X+48;
            printf("%s",s); 
        }
    }
    return 0;
}

by Apple_Pie @ 2022-03-18 16:50:31

@GNOH char用%s就不对,而且你的第二个循环加了a[0]到a[10],显然不对。


by GNOH @ 2022-03-22 14:34:34

@Apple_Pie 字符型数组可以用%s啊,为什么不对?第二个循环只加到了a[8]啊


by Apple_Pie @ 2022-03-22 17:38:56

@GNOH 你想加上数字,但字符也被你加上了


|