CF48A Rock-paper-scissors (#模拟 -1.9)

题意翻译

三个人玩石头剪刀布,问谁赢了。

输入三行,每行一个字符串(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;
}

猜你喜欢

转载自blog.csdn.net/Apro1066/article/details/81349886
1.9