题目描述
现在有两个人在玩石头剪子布游戏,请你判断最后谁赢了。
用R代表石头,S代表剪子,P代表布。
输入
输入的第一行是一个整数t(0<t<1000),表示测试样例的数目。
每组输入样例的第一行是一个整数n(0<n<100),表示游戏次数。
接下来n行,每行由两个字母组成,两个字母之间用一个空格分隔,这些字母只会是R,S或P。
第一个字母表示Player1的选择,第二个字母表示Player2的选择。
输出
对于每组输入样例,输出获胜方的名字(Player1或Player2),如果平均,则输出TIE。
样例输入
3 2 R P S R 3 P P R S S R 1 P R
样例输出
Player 2 TIE Player 1
我的思路
1.举出所有赢或输的可能性,用计数器进行加或减。
2.C语言用getchar()来吸收上一个输出后的回车以及输入字符间的空格。
我的程序
#include<stdio.h>
#include<string.h>
void main()
{
int a,b,c;
char s1,s2;
scanf("%d",&a);
while(a--)
{
c=0;
scanf("%d",&b);
while(b--)
{
getchar();
scanf("%c",&s1);
getchar();
scanf("%c",&s2);
if(s1=='P'){
if(s2=='R')
c++;
else if(s2=='S')
c--;
}
else if(s1=='R'){
if(s2=='S')c++;
else if(s2=='P')c--;
}
else if(s1=='S'){
if(s2=='P')c++;
else if(s2=='R')c--;
}
//if((s1=='R'&&s2=='S')||(s1=='P'&&s2=='R')||(s1=='S'&&s2=='P'))
// c++;
//else if((s1=='R'&&s2=='P')||(s1=='P'&&s2=='S')||(s1=='S'&&s2=='R'))
// c++;
}
if(c>0)
printf("Player 1\n");
else if(c==0)
printf("TIE\n");
else
printf("Player 2\n");
}
}