觉得自己写的这个还是有很差,而且没有完全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;
}