1018. 锤子剪刀布


#include <cstdio>
int change(char c){
	if(c=='B') return 0;
	if(c=='C') return 1;
	if(c=='J') return 2;
}

int main(){

int T;
char c1,c2;
scanf("%d",&T);
int a[3]={0},b[3]={0}; 
//记录赢得多的次数的手势
int handa[3]={0},handb[3]={0}; 
	char mp[3]={'B','C','J'};
for(int i=0;i<T;i++){

	getchar();
	scanf("%c %c",&c1,&c2);
	int k1 = change(c1);
	int k2 = change(c2);
	if((k1+1)%3==k2){
		 a[0]++; b[2]++;
		 //记录甲靠k1赢的次数 
		 handa[k1]++; 
	}else if(k1==k2){
		a[1]++;b[1]++;
	}else {
		b[0]++;a[2]++;
		handb[k2]++;
	}
}

	printf("%d %d %d\n",a[0],a[1],a[2]);
	printf("%d %d %d\n",b[0],b[1],b[2]);
	int id1=0,id2=0;
	for(int i=0;i<3;i++){
		if(handa[i]>handa[id1]) id1 =i;
		if(handb[i]>handb[id2]) id2 =i;
	}
	printf("%c %c",mp[id1],mp[id2]);//注意这里输出的是字符

 	return 0;
}





题意: C锤子 B布 J剪刀

思路:1 将B C J 按字典序排序 用0 1 2  代替更为方便 写一个change函数 将手势对应到数字。

(布0胜锤子1 锤子1胜剪刀2 剪刀2胜锤子0 )

          2. 每次读入后将手势转换为对应数字k1 k2 然后k1胜k2的条件是 (k1+1)%3==k2 平的条件k1==k2 负的条件(k2+1)%3=2

          3. 记录 用数组 要不六个每个都定义好麻烦。。a[0] 甲胜 a[1] 甲平 a[2] 甲负


注意: 数组不要三个数就定义2 要定义3 不然最后一个数就怪怪的 还有每个循环的条件第一遍就要好好检查 不然检查的时候查不出来

getchar超级重要 吸引换行和空格



题意: C锤子 B布 J剪刀
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值