1018 _剪子包袱锤

23 篇文章 0 订阅
觉得自己写的这个还是有很差,而且没有完全Accept ,还是没有进行好的设计。TBC

#include<iostream>
#include<map>
using namespace std;

//学习了一下map 的使用,但是此题不能用map,要找到一个更好的去描述规则的东西
//这个题总而言之是很繁琐,需要注意很多变量的规整,只要有时间久能做出来,但是没有什么技巧的东西,但是规定时间里面要找到相应的方法快速很重要
//submit : 14 分,后面三个用例 不过,怀疑是 三个数比较的时候出的错误 

//得到了一个比较三者最大值的一个最短行代码
/*int max(int a,int b,int c = 0)
{
    if (a < b)
    {
          a = b;
    }
    if (c > a)
    {
          a = c;
    }
    return a;
}*/
struct player
{
	int win ;
	int lose;
	int tie;
	int Bwin;
	int Cwin;
	int Jwin;
	char winMax;
}J= {0,0,0,0,0,0,'B'},Y={0,0,0,0,0,0,'B'};

char compareThreeMax(player person)
{
	
	if(person.Bwin >= person.Cwin && person.Bwin >= person.Jwin)
		person.winMax = 'B';
	else 
		if(person.Cwin >= person.Jwin && person.Cwin >= person.Bwin)
		person.winMax = 'C';
		else if(person.Jwin > person.Cwin && person.Jwin > person.Bwin)
		person.winMax = 'J';
	return person.winMax;
}

int main()
{
	int count;
	cin >> count;
	//map<string,int>m1,m2,m3;
	char showJ,showY;
	while(count > 0)
	{
		cin >> showJ >> showY;
		int comp = showJ - showY;
		switch(comp)
		{
		case 0://平
			{
				J.tie ++;
				Y.tie ++;
				break;
			}
		case 1://包袱赢
			{
				J.lose ++;
				Y.win ++;
				Y.Bwin ++;
				
				break;
			}
		case -1: //j win
			{
				J.win ++;
				J.Bwin ++;
				Y.lose ++;
				break;


			}
		case 7: //剪刀赢 y win
			{
				J.lose ++;
				Y.win ++;
				Y.Jwin ++;
				
				break;
			}
		case -7:
			{
				J.win ++;
				J.Jwin ++;
				Y.lose ++;
				
				break;

			}
		case 8://j锤子赢,
			{
				
				J.win ++;
				J.Cwin ++;
				Y.lose ++;
				break;
				

			}
		case -8:
			{
				J.lose ++;
				Y.win ++;
				Y.Cwin ++;
				
				break;
			}
			
		}
		count --;


	}
	//s输出甲的,和乙的
	//比较甲和乙的各个字母赢的次数,输出最大的。
	cout<<J.win<<" "<<J.tie<<" "<<J.lose<<endl;
	cout<<Y.win<<" "<<Y.tie<<" "<<Y.lose<<endl;
	J.winMax = compareThreeMax(J);
	Y.winMax = compareThreeMax(Y);
	cout<<J.winMax<<" "<<Y.winMax<<endl;

	

	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值