解题思路:表面看题目很简单,但实际上还是要考虑以下几点
1、输入是用字符还是用字符串接收
2、要考虑出现2H、JH、10H这种2个字符或者3个字符的情况需要判断
3、如果用你getchar()需要注意空格、回车此类字符
4、1-9根据asc码比较大小,但10JQKA需要处理后才能进行比较
上代码:
#include<stdlib.h> #include<iostream> using namespace std; int main() { int n; cin>>n; while(n--) { char wang, one[2],two[2];//我是按照每人2个字符进行处理的 cin>>wang; cin>>one[0]>>one[1]; //输入第一个人的牌 if(one[1]=='0'&&one[0]=='1') //处理10 { one[0] +=9; cin>>one[1]; } if(one[0]=='J') one[0]='9'+2; //处理JQKA else if(one[0]=='Q') one[0]='9'+3; else if(one[0]=='K') one[0]='9'+4; else if(one[0]=='A') one[0]='9'+5; cin>>two[0]>>two[1]; //输入第二个人的牌 if(two[1]=='0'&&two[0]=='1')//处理10 { two[0] +=9; cin>>two[1]; } if(two[0]=='J') two[0]='9'+2; else if(two[0]=='Q') two[0]='9'+3; else if(two[0]=='K') two[0]='9'+4; else if(two[0]=='A') two[0]='9'+5;//处理JQKA //几种判断大小 if(one[1]==wang&&two[1]==wang) if(one[0]>two[0]) cout<<"YES"<<endl; else cout<<"NO"<<endl; else if(one[1]==wang) cout<<"YES"<<endl; else if(two[1]==wang) cout<<"NO"<<endl; else { if(one[0]>two[0]) cout<<"YES"<<endl; else cout<<"NO"<<endl; } } return 0; }
0.0分
2 人评分
C语言训练-阿姆斯特朗数 (C语言代码)浏览:897 |
C二级辅导-等差数列 (C语言代码)浏览:1315 |
永远的丰碑 (C语言代码)浏览:698 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:657 |
字符串输入输出函数 (Java代码)浏览:1498 |
九宫重排 (C++代码)浏览:1410 |
Hello, world! (C语言代码)浏览:766 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:756 |
Hello, world! (C语言代码)浏览:916 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:536 |