纸牌游戏
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
1
-
描述
-
-
玩家1和玩家2各出一张牌,看谁大。如果两张牌都不是王牌花色或则都是王牌花色,则牌面大的牌大,如果牌面一样大则一样大。若其中一张牌是王牌而另一张不是,则无论牌面如何都是王牌花色大。
-
输入
-
第一行一个数字n,代表数据组数(n <= 10)
对于每组数据,首先输入一个字符(S\H\D\C),表示王牌花色。
接下去一行有两张牌面,表示为牌面花色,如8D、9S等。
输出
- 对于每组数据,输出第一张牌是否比第二张牌大,若是则输出YES,否则输出NO 样例输入
-
1 H QH 9S
样例输出
-
YES
提示
A的值为1,不是13
简直就是一道很坑的水题, 要注意的地方太多了,而且题意不太清楚,还得靠生活积累,JKQ,哎,原谅我打牌太少,,,,
#include <stdio.h> #include <string.h> int fun(char *s, int len) { if(len == 3) return 10; if(s[0] >= '0' && s[0] <= '9') return s[0] - '0'; if(s[0] == 'A') return 1; if(s[0] == 'J') return 11; if(s[0] == 'Q') return 12; if(s[0] == 'K') return 13; return 0; } int main() { int n, len1, len2, first1, first2; char ch, s1[5], s2[5]; scanf("%d", &n); while(n--) { getchar(); scanf("%c", &ch); scanf("%s", s1); scanf("%s", s2); len1 = strlen(s1); len2 = strlen(s2); if(s1[len1 - 1] == ch && s2[len2 - 1] != ch) { printf("YES\n"); } else if(s1[len1 - 1] != ch && s2[len2 - 1] == ch) { printf("NO\n"); } else if(s1[len1 - 1] == ch && s2[len2 - 1] == ch) { first1 = fun(s1, len1); first2 = fun(s2, len2); if(first1 > first2) { printf("YES\n"); } else { printf("NO\n"); } } else if(s1[len1 - 1] != ch && s2[len2 - 1] != ch) { first1 = fun(s1, len1); first2 = fun(s2, len2); if(first1 > first2) { printf("YES\n"); } else { printf("NO\n"); } } } return 0; }
-