100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 菜鸟写C语言———石头剪子布

菜鸟写C语言———石头剪子布

时间:2019-10-05 02:46:16

相关推荐

菜鸟写C语言———石头剪子布

话不多说,上题

输入:

第一行是一个整数N,表示一共进行了N次游戏。1 ≤ N ≤ 100。 接下来N行的每一行包括两个字符串,表示游戏参与者Player1,Player2的选择(石头、剪子或者是布): S1 S2 字符串之间以空格隔开S1,S2只可能取值在{“Rock”, “Scissors”, “Paper”}(大小写敏感)中

输出格式:

包括N行,每一行对应一个胜利者(Player1或者Player2),或者游戏出现平局,则输出Tie。

测试输入:

3 3

Rock ScissorsRock Rock

Paper Paper Paper Paper

Rock PaperScissorScissors(这里输入错误,所以下面输出只有两个平局)

预期输出

Player1 Tie

TieTie

Player2

总有一些大哥(傻Ⅹ)会输入N大于100或者小于1,或者将剪刀、石头、布输入出错,所以我们必须将题目条件全部考虑(上面加粗倾斜的部分)。

好的,放结果。

#include<stdio.h>#include<string.h>int main(){int N,i,a[100];#数列a[]存数值,确定输出的是哪一方char s1[10],s2[10],r[10]={"Rock"},s[10]={"Scissors"},p[10]={"Paper"};scanf("%d",&N);if(N>=1&&N<=100) #判断是否符合范围{for(i=0;i<N;i++){scanf("%s %s",&s1,&s2);if(s1[0]=='R'&&!(strcmp(s1,r))) #穷举。将输入的s1与石头剪子布比较{if(!(strcmp(s2,r)))#讨论s2的情况a[i]=3;else if(!(strcmp(s2,s)))a[i]=1;elsea[i]=2;}else if(s1[0]=='S'&&!(strcmp(s1,s))) {if(!(strcmp(s2,s)))a[i]=3;else if(!(strcmp(s2,r)))a[i]=2;elsea[i]=1;} else if(s1[0]=='P'&&!(strcmp(s1,p))){if(!(strcmp(s2,p)))a[i]=3;else if(!(strcmp(s2,s)))a[i]=2;elsea[i]=1;}} for(i=0;i<N;i++){switch(a[i]){case 1:printf("Player1\n"); break;case 2:printf("Player2\n"); break;case 3:printf("Tie\n");break;default:;}} }else;return 0;}

主要是确保N的范围,输入的字符串正确(我用的字符串比较函数,注意相等的返回值为零)

过于冗长

绝对菜鸟级别,希望能得到大家赐教。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。