一、链接
1290 Alice and Bob
二、题目
题目描述
Alice和Bob玩剪刀-石头-布的游戏,请你写个程序判断一下比赛的结果。

输入
第一行是一个整数K,表示样例的个数。
 以后每行两个单词,rock表示石头,paper表示布,scissors表示剪刀。 前面一个单词是Alice出的拳,后面一个单词是Bob出的拳。
输出
平局输出"Draw",否则输出获胜者。
样例输入
3 rock paper rock scissors rock rock
样例输出
Bob Alice Draw
三、题意
多样例输入,石头剪刀布,输出比赛结果(平局或者胜利者的名字)
四、代码
c++代码
#include<iostream>
#include<cstring>
using namespace std;
char  a[10]="Alice";
char b[10]="Bob";
char c[10]="Draw";
int main()
{
	int t;
	scanf("%d",&t);
	
	while(t--)
	{
		char q1[20],q2[20];
		scanf("%s%s",q1,q2);
		if(q1[0]==q2[0])	printf("%s\n",c);
		else
		{
			if(q1[0]=='r')
			{
				if(q2[0]=='p')	printf("%s\n",b);
				if(q2[0]=='s')	printf("%s\n",a);
			}
			
			if(q1[0]=='p')
			{
				if(q2[0]=='r')	printf("%s\n",a);
				if(q2[0]=='s')	printf("%s\n",b);
			}
			
			if(q1[0]=='s')
			{
				if(q2[0]=='r')	printf("%s\n",b);
				if(q2[0]=='p')	printf("%s\n",a);
			}
		}
	}
	
	return 0;
} 
c语言代码
#include<stdio.h>
char a[10]="Alice";
char b[10]="Bob";
char c[10]="Draw";
int main()
{
	int t;
	scanf("%d",&t);
	
	while(t--)
	{
		char q1[10],q2[10];
		scanf("%s%s",q1,q2);
		
		if(q1[0]==q2[0])	printf("%s\n",c);
		else
		{
			if((q1[0]=='r'&&q2[0]=='s')||(q1[0]=='s'&&q2[0]=='p')||(q1[0]=='p'&&q2[0]=='r'))
				printf("%s\n",a);
			else
				printf("%s\n",b);
		}
	}
	
	return 0;
} 
五、总结
1.相比于第一个代码,第二个代码,我重新设置了一个分类讨论的标准,代码更短,更加简洁
2.把需要输出的字符串定义为全局变量,输出的时候就非常简单,如果下次遇到需要输出的字符串比较多,也可以采取这种办法
3.进行条件判断的时候,只需要比较字符串的第一个字母就可以了,如果第一个字母有重复的,可以考虑比较第二个字母
六、精美图片




















