PAT B1018- "Algorithm Notes"

Foreword:

21 Postgraduate entrance examination, I am gnawing "Algorithm Notes", whether I can enter the retest or not to record the garbage code written on the road.

answer:

#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;
}

Only the first three test points can be tested, and the last three cannot be found wrong.

Guess you like

Origin blog.csdn.net/weixin_44897291/article/details/112612481