现在的位置: 首页 > 综合 > 正文

1018 _剪子包袱锤

2017年08月18日 ⁄ 综合 ⁄ 共 1379字 ⁄ 字号 评论关闭
觉得自己写的这个还是有很差,而且没有完全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;
}

抱歉!评论已关闭.