输入格式:
输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。
输出格式:
输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯一,则输出按字母序最小的解。
输入样例:10 C J J B C B B B B C C C C B J B B C J J输出样例:
5 3 2 2 3 5 B B
#include <iostream> using namespace std; void max(const int a, const int b, const int c) { int maxnum=(a>=b?a:b)>c?(a>=b?a:b):c; if (maxnum==c) { cout<<'B'; } else if(maxnum==a) { cout<<'C'; } else { cout<<'J'; } } int main() { int n; int a1=0,a2=0,a3=0; int b1=0,b2=0,b3=0; int c1=0,c2=0,c3=0; cin>>n; char temp1,temp2; while (n--) { cin>>temp1>>temp2; switch (abs(temp1-temp2)) { case 0:a2++;break; case 1:if (temp1<temp2) { a1++;b3++; } else { a3++;c3++; } break; case 7:if (temp1<temp2) { a1++;b1++; } else { a3++;c1++; } break; case 8:if (temp1>temp2) { a1++;b2++; } else { a3++;c2++; } break; } } cout<<a1<<' '<<a2<<' '<<a3<<endl; cout<<a3<<' '<<a2<<' '<<a1<<endl; max(b1,b2,b3); cout<<' '; max(c1,c2,c3); system("pause"); return 0; }
本文介绍了一个基于C++实现的手势博弈程序,该程序通过用户输入的甲乙双方手势进行胜负判断,并统计双方胜平负次数及常用获胜手势。程序采用switch-case结构处理不同手势组合,输出结果包括胜利和平局的次数以及最常用的手势。
184

被折叠的 条评论
为什么被折叠?



