PAT (Basic Level) Practice (中文)1018 錘子剪刀布(20 分)C語言

1018 錘子剪刀布(20 分)

大家應該都會玩“錘子剪刀布”的遊戲:兩人同時給出手勢,勝負規則如圖所示:

FigCJB.jpg

現給出兩人的交鋒記錄,請統計雙方的勝、平、負次數,並且給出雙方分別出什麼手勢的勝算最大。

輸入格式:

輸入第 1 行給出正整數 N(≤10​5​​),即雙方交鋒的次數。隨後 N 行,每行給出一次交鋒的信息,即甲、乙雙方同時給出的的手勢。C 代表“錘子”、J 代表“剪刀”、B 代表“布”,第 1 個字母代表甲方,第 2 個代表乙方,中間有 1 個空格。

輸出格式:

輸出第 1、2 行分別給出甲、乙的勝、平、負次數,數字間以 1 個空格分隔。第 3 行給出兩個字母,分別代表甲、乙獲勝次數最多的手勢,中間有 1 個空格。如果解不唯一,則輸出按字母序最小的解。

輸入樣例:

10
C J
J B
C B
B B
B C
C C
C B
J B
B C
J J

輸出樣例:

5 3 2
2 3 5
B B

用C語言寫

#include<stdio.h>
int main(){
	int n,c=0,c1=0,j=0,j1=0,b=0,b1=0,p=0;
	char letter1,letter2;
	scanf("%d",&n);
	getchar();
	for(int i = 0;i<n;i++){
		scanf("%c %c",&letter1,&letter2);
		getchar();
		if(letter1=='B'&&letter2=='C')
		b++;
		else if(letter1=='C'&&letter2=='J')
		c++;
		else if(letter1=='J'&&letter2=='B')
		j++;
		else if(letter1==letter2)
		p++;
		else if(letter2=='C'&&letter1=='J')
		c1++;
		else if(letter2=='J'&&letter1=='B')
		j1++;
		else if(letter2=='B'&&letter1=='C')
		b1++;
	}
	    printf("%d %d %d\n",c+j+b,p,c1+j1+b1);
		printf("%d %d %d\n",c1+j1+b1,p,c+j+b);
		if(b>=j&&b>=c) printf("B ");
		else if(c>=j&&c>=b) printf("C ");
		else if(j>=c&&j>=b) printf("J "); 
		if(b1>=j1&&b1>=c1) printf("B");
		else if(c1>=j1&&c1>=b1) printf("C");
		else if(j1>=c1&&j1>=b1) printf("J");
} 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章