PAT Basic Level 1018. 锤子剪刀布(20)

【来源】

1018. 锤子剪刀布(20)

【分析】

解此题时,要求在记录甲乙双方输赢次数的同时,记录下甲乙用三种手势赢的次数。然后比较之后输出。

学到的新知识为数组批量初始化为0的快捷方法:

int array[10] = {0}

【源码】

#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    int awin = 0;
    int bwin = 0;
    int draw = 0;

    // 'BCJ' <--> times[012]
    int timesa[3] = { 0 };
    int timesb[3] = { 0 };

    for (int i = 0; i < n; ++i){
        char a, b;
        cin >> a >> b;         
        if (a == b){
            ++draw;
        }
        else if (a == 'C' && b == 'J'){
            ++timesa[1];
            ++awin;
        }
        else if (a == 'J' && b == 'B'){
            ++timesa[2];
            ++awin;
        }
        else if (a == 'B' && b == 'C'){
            ++timesa[0];
            ++awin;
        }
        else if (a == 'C' && b == 'B'){
            ++timesb[0];
            ++bwin;
        }
        else if (a == 'J' && b == 'C'){
            ++timesb[1];
            ++bwin;
        }
        else if (a == 'B' && b == 'J'){
            ++timesb[2];
            ++bwin;
        }
    }

    char maxa, maxb;
    int maxta, maxtb;

    maxa = timesa[0] >= timesa[1] ? 'B': 'C';
    maxta = timesa[0] >= timesa[1] ? timesa[0] : timesa[1];
    maxa = maxta >= timesa[2] ? maxa : 'J';

    maxb = timesb[0] >= timesb[1] ? 'B' : 'C';
    maxtb = timesb[0] >= timesb[1] ? timesb[0] : timesb[1];
    maxb = maxtb >= timesb[2] ? maxb : 'J';

    cout << awin << " " << draw << " " << bwin << endl;
    cout << bwin << " " << draw << " " << awin << endl;
    cout << maxa << " " << maxb << endl;

    system("pause");

    return 0;
}

【点评】

此题为简单的模拟题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值