原题链接:王牌花色
解题思路:表面看题目很简单,但实际上还是要考虑以下几点
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语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复