#include <stdio.h>
int main()
{
char a[1000]={0};
char b[1000]={0};
int i=0,c1=0,c2=0,c3=0,d1=0,d2=0,d3=0,j=0,h=0,n;
int cc=0,cb=0,cj=0,dc=0,db=0,dj=0,m=0;
scanf("%d\n",&n);
while(n-1) //n-1是为了减少一次输入,在后面单独拿出来
{
scanf("%c %c\n",&a[i],&b[i]);
if( (a[i]-b[i]==-7)||(a[i]-b[i]==8)||(a[i]-b[i]==-1) ) //布,锤子,剪刀,甲赢的时候分别是a[i]-b[i]==-1;-7;8 由ASCII码算出
{ c1++;j++;d3++;
if(a[i]-b[i]==-7) cc++;
else if(a[i]-b[i]==8) cj++;
else if(a[i]-b[i]==-1) cb++;
}
else if( (a[i]-b[i]==7)||(a[i]-b[i]==-8)||(a[i]-b[i]==1) ) //乙赢与甲类似,只是甲乙顺序对调,所以符号相反
{ d1++;h++;c3++;
if(a[i]-b[i]==7) dc++;
else if(a[i]-b[i]==-8) dj++;
else if(a[i]-b[i]==1) db++;
}
else if( (a[i]==b[i]) ) {c2++; d2++;} //平局
i++;
n--;
}
scanf("%c %c",&a[i],&b[i]); //循环后再来一遍是因为最后一组数据输入后,不需要再输入\n,即回车键
if( (a[i]-b[i]==-7)||(a[i]-b[i]==8)||(a[i]-b[i]==-1) )
{ c1++;j++;d3++;
if(a[i]-b[i]==-7) cc++;
else if(a[i]-b[i]==8) cj++;
else if(a[i]-b[i]==-1) cb++;
}
else if( (a[i]-b[i]==7)||(a[i]-b[i]==-8)||(a[i]-b[i]==1) )
{ d1++;h++;c3++;
if(a[i]-b[i]==7) dc++;
else if(a[i]-b[i]==-8) dj++;
else if(a[i]-b[i]==1) db++;
}
else if( (a[i]==b[i]) ) {c2++; d2++;}
if(cb>=cc) {if(cb<cj) m=3;else if(cb>=cj) m=1;}
else if(cb<cc) {if(cc<cj) m=3;else if(cc>=cj) m=2;} //此处是分别比较甲、乙获胜次数最多的手势
if(db>=dc) {if(db<dj) n=3;else if(db>=dj) n=1;}
else if(db<dc) {if(dc<dj) n=3;else if(dc>=dj) n=2;} //此处m,n为1,2,3分别代表赢时的b,c,j; n此时已经无用,所以拿来用在这里没问题
printf("%d %d %d\n",c1,c2,c3);
printf("%d %d %d\n",d1,d2,d3); //甲乙,赢平输,次数输出
switch(m)
{case 1:printf("B "); break;
case 2:printf("C "); break;
case 3:printf("J "); break;
default:printf(" "); break;}
switch(n)
{case 1:printf("B"); break;
case 2:printf("C"); break;
case 3:printf("J"); break;
default:printf(" "); break;} //甲乙手势输出
system("pause");
return 0;
}
1018 hammer scissors, C
Guess you like
Origin blog.csdn.net/weixin_43916400/article/details/104378501
Ranking