易错点:
- 注意scanf("%c")会把换行符吃掉,会导致接收输入出错,所以要用getchar吃掉换行符;
#include<cstdio>
#include<algorithm>
using namespace std;
char mp[3] = {'B','C','J'};
int change(char c){
if(c == 'B') return 0;
if(c == 'C') return 1;
if(c == 'J') return 2;
}
int main(){
int jia[3]={0},yi[3]={0}; //记录甲乙的胜负平情况
int j[3]={0},y[3]={0}; //记录甲乙的石头剪刀布的获胜情况
int n;
scanf("%d",&n);
char a,b;
for(int i=0;i<n;i++){
getchar(); //注意这个getchar是必须的,不然后面scanf会把换行符吃进去导致读取的换行符'\n'
scanf("%c %c",&a,&b);
int k1 = change(a);
int k2 = change(b); //将甲乙的出拳转换为数字
if((k1+1)%3 == k2){ //甲赢
jia[0]++;
yi[2]++;
j[k1]++;
}else if(k1 == k2){ //平局
jia[1]++;
yi[1]++;
}else{ //乙赢
jia[2]++;
yi[0]++;
y[k2]++;
}
}
printf("%d %d %d\n",jia[0],jia[1],jia[2]);
printf("%d %d %d\n",yi[0],yi[1],yi[2]);
int max1=0,max2=0;
for(int i=1;i<3;i++){
if(j[i]>j[max1]) max1 = i;
if(y[i]>y[max2]) max2 = i;
}
printf("%c %c",mp[max1],mp[max2]);
return 0;
}
京公网安备 11010502036488号