一、链接
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);elseprintf("%s\n",b);}}return 0;
}
五、总结
1.相比于第一个代码,第二个代码,我重新设置了一个分类讨论的标准,代码更短,更加简洁
2.把需要输出的字符串定义为全局变量,输出的时候就非常简单,如果下次遇到需要输出的字符串比较多,也可以采取这种办法
3.进行条件判断的时候,只需要比较字符串的第一个字母就可以了,如果第一个字母有重复的,可以考虑比较第二个字母
六、精美图片