题目描述
玩家甲和玩家乙各出一张牌,看谁大。
游戏规则:如果两张牌都不是王牌花色或则都是王牌花色,则牌面大的牌大,如果牌面一样大则一样大。若其中一张牌是王牌而另一张不是,则无论牌面如何都是王牌花色大。
输入
第一行一个数字n,代表数据组数(n <= 10)
对于每组数据,首先输入一个字符(S\H\D\C),表示王牌花色。
接下去一行有两张牌面,表示为牌面花色,如8D、9S等。
输出
对于每组数据,输出第一张牌是否比第二张牌大,若是则输出YES,否则输出NO
样例输入
1HQH 9S
样例输出
YES
提示
A的值为1,不是13
源代码如下:
#include<stdio.h>
int
main()
{
int
i,j,n,x,y,len1,len2;
char
wang;
char
ch1[50],ch2[50];
scanf
(
"%d"
,&n);
for
(i=0;i<n;i++)
{
getchar
();
//注意GETCHER()的使用。
scanf
(
"%c"
,&wang);
//输入王牌的花色
scanf
(
"%s
%s"
,ch1,ch2);
len1=
strlen
(ch1);
//判断王牌的字符数字(其中牌10的字符串长度为三,所以单独考虑)
if
(len1==3){ch1[0]=58;ch1[1]=ch1[2];}
//牌10的字符串长度为三,改变牌10的所含,用9后面的AS。码代替),并将其花色赋给CH1[1],便于比较。
else
{
if
(ch1[0]==
'A'
)ch1[0]=49;
if
(ch1[0]==
'J'
)ch1[0]=59;
if
(ch1[0]==
'Q'
)ch1[0]=60;
if
(ch1[0]==
'K'
)ch1[0]=61;
}
len2=
strlen
(ch2);
if
(len2==3){ch2[0]=58;ch2[1]=ch2[2];}
else
{
if
(ch2[0]==
'A'
)ch2[0]=49;
if
(ch2[0]==
'J'
)ch2[0]=59;
if
(ch2[0]==
'Q'
)ch2[0]=60;
if
(ch2[0]==
'K'
)ch2[0]=61;
}
if
((ch1[1]==wang&&ch2[1]==wang)||(ch1[1]!=wang&&ch2[1]!=wang))//比较
{
if
(ch1[0]>ch2[0])
printf
(
"YES\n"
);
else
printf
(
"NO\n"
);
}
if
(ch1[1]==wang&&ch2[1]!=wang)
{
printf
(
"YES\n"
);
}
if
(ch1[1]!=wang&&ch2[1]==wang)
{
printf
(
"NO\n"
);
}
}
return
0;
}