题意翻译
三个人玩石头剪刀布,问谁赢了。
输入三行,每行一个字符串(rock(石头),scissors(剪刀),paper(布)),分别表示这三个人出的手势。
石头打破剪刀,剪刀剪纸,纸裹在石头上。
当有一个人同时赢过其他两人时,他获胜,否则胜负不分。
如果第一个人赢了输出"F"(没有引号),第二个人赢了输出"M",第三个人赢了输出"S",胜负不分输出"?"。
输入输出样例
输入样例#1
rock
rock
rock
输出样例#1
?
输入样例#2
paper
rock
rock
输出样例#2
F
输入样例#3
scissors
rock
rock
输出样例#3
?
输入样例#4
scissors
paper
rock
输出样例#4
?
思路
只有当一个人赢两个人才算获胜,否则就是不分胜负。
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
string a[4];
int a1(0),b1(0),c1(0);//石头,剪刀和布的出现次数
static int i,s;
for(i=1;i<=3;i++)
{
cin>>a[i];
if(a[i]=="rock")
{
a1++;
}
else if(a[i]=="scissors")
{
b1++;
}
else
{
c1++;
}
}
if((a1==1 && b1==2) || (b1==1 && c1==2) || (c1==1 && a1==2))//如果有一个人赢了其他两个人的时候
{
if(a[1]==a[2])
cout<<'S'<<endl;
else if(a[2]==a[3])
cout<<"F"<<endl;
else
cout<<"M"<<endl;
}
else
cout<<'?'<<endl;
return 0;
}