malloc_88 2020-01-18 17:03 采纳率: 0%
浏览 327

各位大佬,能不能帮我看看为什么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;
}
  • 写回答

1条回答 默认 最新

  • console.log( ) 2020-01-20 11:32
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘