描述
-
玩家1和玩家2各出一张牌,看谁大。如果两张牌都不是王牌花色或则都是王牌花色,则牌面大的牌大,如果牌面一样大则一样大。若其中一张牌是王牌而另一张不是,则无论牌面如何都是王牌花色大。
输入
第一行一个数字n,代表数据组数(n <= 10)
对于每组数据,首先输入一个字符(S\H\D\C),表示王牌花色。
接下去一行有两张牌面,表示为牌面花色,如8D、9S等。
输出
对于每组数据,输出第一张牌是否比第二张牌大,若是则输出YES,否则输出NO
样例输入
1
H
QH 9S
样例输出
YES
提示
A的值为1,不是13
#include<stdio.h>
#include<string.h>
int main() {
const char *s[]={"A", "2", "3","4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
int T,i,j;
char flag,flag1,flag2;
char str1[6], str2[6];
scanf("%d", &T);
while(T--) {
bzero(str1, sizeof(str1));
bzero(str2, sizeof(str2));
getchar();
scanf("%c%s%s", &flag, str1, str2);
/*flag1,flag2 牌面花色*/
flag1=str1[strlen(str1)-1];
flag2=str2[strlen(str2)-1];
/*牌面大小*/
str1[strlen(str1)-1]='\0';
str2[strlen(str2)-1]='\0';
/*对应的牌面大小*/
for(i = 0; i < 13; i++)
if(strcmp(s[i], str1)==0)
break;
for(j = 0; j < 13; j++)
if(strcmp(s[j], str2)==0)
break;
/*同属王牌花色或都不是王牌花色,牌面大的为大;仅有一个为王牌花色,为王牌花色的大;*/
if((flag1==flag && flag2!=flag) || ((i > j) && \
((flag1 != flag && flag2 != flag) || (flag1 == flag && flag2==flag))))
printf("YES\n");
else
printf("NO\n");
}
return 0;
}