各位大佬,能不能帮我看看为什么pat1018石头剪刀布部分测试点过不了

图片说明
图片说明图片说明

int change(char c)
{
    if(c == 'B')
    return 0;
    else if(c == 'C')
    return 1;
    else if(c == 'J')
    return 2;
}
int main()
{
    char c1, c2;
    int k1, k2;
    int ahand[3] = {0};
    int bhand[3] = {0};
    int ka[3] = {0};
    int kb[3] = {0};
    char mp[3] = {'B','C','J'};
    int m1 = 0, m2 = 0;
    int n;
    scanf("%d", &n);
    for(int i = 0; i < n; i++)
    {
        getchar();
        scanf("%c %c", &c1, &c2);
        k1 = change(c1);
        k2 = change(c2);
        if((k1+1)%3 == k2)
        {
            ahand[0]++;
            bhand[2]++;
            ka[k1]++;
        }
        else if((k2+1)%3 == k1)
        {
            ahand[2]++;
            bhand[0]++;
            ka[k2]++;
        }
        else
        {
            ahand[1]++;
            bhand[1]++;
        }
    }
    printf("%d %d %d\n", ahand[0], ahand[1], ahand[2]);
    printf("%d %d %d\n", bhand[0], bhand[1], bhand[2]);
    for(int i = 0; i < 3; i++)
    {
        if(ka[m1] < ka[i])
        {
            m1 = i;
        }
        if(kb[m2] < kb[i])
        {
            m2 = i;
        }
    }   
    printf("%c %c\n", mp[m1], mp[m2]);
    return 0;
}

如果n=0,你的for循环就不会执行,判断一下
bhand没必要,把ahand倒着输出就行