输出没有问题但是就是只能过一个测试点的怪事

为什么自己编译器上能跑起来,结果也跟示例输出的一模一样,但是在洛谷上就只能过一个测试点呢O.o,诚邀各位佬来给我解惑,感谢大家!

img

img


输出是这样的

img


码源是这样

#include

int dushu(char ch_1,int num_1,char ch_2,int num_2);
int banyinshu(char ch_1,int num_1,char ch_2,int num_2);

int main(void)
{ 
    int T; scanf("%d",&T);
    int i;
    int n=0;
    char ch_1,ch_2;
    int num_1,num_2;
    int dushucha[T];
    int banyinshucha[T];
    
    for(i=0;ifor(i=0;ireturn 0;
 } 
 
int dushu(char ch_1,int num_1,char ch_2,int num_2 )
{
    int n,n1,n2;
    char canzhao[7]={'C','D','E','F','G','A','B'};
        for(n=0;n<7;n++)
            {
                if(canzhao[n]==ch_1)
                     n1=n;
                    if(canzhao[n]==ch_2)
                     n2=n;
            }
    if(num_1==num_2)
    {
        ////字母相同,数字相同
        if(ch_1==ch_2)
        return 1;
        //字母相同,数字不同
        else return n2-n1+1 ;
    }
    else 
    {
        //字母不同,数字不同 
        if(n2return 8+7*(num_2-num_1-1)+(n2-n1);
        else
        return 8+7*(num_2-num_1-1)+(n2-n1);
        
        }        
}

int banyinshu(char ch_1,int num_1,char ch_2,int num_2)
{
    int n,n1,n2;
    char canzhao[12]={'C','0','D','0','E','F','0','G','0','A','0','B'};
    for(n=0;n<12;n++)
    {
           if(canzhao[n]==ch_1)
           n1=n;
           if(canzhao[n]==ch_2)
           n2=n;        
    }
    if(num_1==num_2)
             return n2-n1;
    else
    {//因为右边的一定大于等于左边 
        if(ch_1==ch_2)
        return 12*(n2-n1);
        
        else
        {
            if(n1>n2)
            return 12*(num_2-num_1)+n2-n1;
            else
            return 12*(num_2-num_1)+n2-n1;
        }
    }
}

边界条件
输入输出格式
……