PAT B1018-《算法笔记》

前言:

21考研,正在啃《算法笔记》,不论能否进复试记录一下准备路上写下的垃圾代码。

解答:

#include<cstdio>

int main()
{
    
       
	int pose1[3] = {
    
     0 }, pose2[3] = {
    
     0 };			//双方获胜3种手势次数,0布,1锤子,2剪刀
	int res1[3] = {
    
     0 }, res2[3] = {
    
     0 };			//双方胜平负次数统计,0胜,1平,2负
	int n, num1=2,num2=2;
	char cur1, cur2,bp1,bp2;								//当前局的手势和获胜最多手势
	scanf("%d", &n);
		while (n--) {
    
    
			getchar();
			cur1 = getchar();
			getchar();
			cur2 = getchar();
			if (cur1 == cur2) {
    
    
				res1[1]++;
				res2[1]++;
			}
			else if (cur1 == 'C' && cur2 == 'J') {
    
    
				res1[0]++;
				res2[2]++;
				pose1[1]++;
			}
			else if (cur1 == 'J' && cur2 == 'B') {
    
    
				res1[0]++;
				res2[2]++;
				pose1[2]++;
			}
			else if (cur1 == 'B' && cur2 == 'C') {
    
    
				res1[0]++;
				res2[2]++;
				pose1[0]++;
			}
			else if (cur2 == 'C' && cur1 == 'J') {
    
    
				res2[0]++;
				res1[2]++;
				pose2[1]++;
			}
			else if (cur2 == 'J' && cur1 == 'B') {
    
    
				res2[0]++;
				res1[2]++;
				pose2[2]++;
			}
			else if (cur2 == 'B' && cur1 == 'C') {
    
    
				res2[0]++;
				res1[2]++;
				pose2[0]++;
			}
		}
		printf("%d %d %d\n", res1[0], res1[1], res1[2]);
		printf("%d %d %d\n", res2[0], res2[1], res2[2]);
		for (int i = 2; i >= 1; i--)
		{
    
    
			if (pose1[i - 1] >= pose1[i])
				num1 = i - 1;
			if (pose2[i - 1] >= pose2[i])
				num2 = i - 1;
		}
		if (num1 == 0)
			bp1 = 'B';
		else if (num1 == 1)
			bp1 = 'C';
		else
			bp1 = 'J';
		if (num2 == 0)
			bp2 = 'B';
		else if (num2 == 1)
			bp2 = 'C';
		else
			bp2 = 'J';
		printf("%c %c", bp1, bp2);
	return 0;
}

只能对前三个测试点,后面三个也找不着错哪,呜

猜你喜欢

转载自blog.csdn.net/weixin_44897291/article/details/112612481
今日推荐