为什么我输出是正确的,但提交就全错了

P1055 [NOIP2008 普及组] ISBN 号码

chentao66666 @ 2022-04-23 18:31:40

#include <stdio.h>

int zhuanhuan(char a)
{
    int t=0;
    t=a-'0';
    return t;
}

int main()
{
    int i=0,sum=0,t=1;
    char a[13];
    int b[13];
    for(i=0;i<13;i++)
    {
        b[i]=0;
    }
    scanf("%s",a);
    for(i=0;i<12;i++)
    {
        if(i==1||i==5||i==11)
        {
            continue;
        }
        b[i]=zhuanhuan(a[i]);

        sum+=t*b[i];
        t++;
    }
    if(a[12]=='X')
    {
        b[12]=10;
    }
    else
    {
        b[12]=zhuanhuan(a[12]);
    }
    if(b[12]==sum%11)
    {
        printf("Right");
    }
    else
    {
        if(sum%11==10)
        {
            a[12]='X';
        }
        else
        {
            a[12]=sum%11+'0';
        }
        printf("%s",a);
    }

    return 0;
} 

by Node_Edge @ 2022-04-23 18:37:54

样例一个不对


by Node_Edge @ 2022-04-23 18:46:06

@chentao66666

改为

#include<bits/stdc++.h>
using namespace std;
int zhuanhuan(char a) {
    int t=0;
    t=a-'0';
    return t;
}
int i,sum,t=1;
char a[13];
int b[13];
int main() {
    scanf("%s",a);
    for(i=0; i<12; i++) {
        if(i==1||i==5||i==11) {
            continue;
        }
        b[i]=zhuanhuan(a[i]);
        sum+=t*b[i];
        t++;
    }
    if(a[12]=='X') {
        b[12]=10;
    } else {
        b[12]=zhuanhuan(a[12]);
    }
    if(b[12]==sum%11) {
        printf("Right");
    } else {
        if(sum%11==10) {
            a[12]='X';
        } else {
            a[12]=sum%11+'0';
        }
        printf("%s",a);
    }
    return 0;
}

by Node_Edge @ 2022-04-23 18:47:21

@chentao66666 您的代码在执行 19 行之后,t 变为了 0


|