解题思路:表面看题目很简单,但实际上还是要考虑以下几点
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语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:655 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:578 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:597 |
【明明的随机数】 (C语言代码)浏览:785 |
蛇行矩阵 (C语言代码)浏览:524 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:342 |
Tom数 (C语言代码)浏览:552 |
勾股数 (C语言代码)浏览:799 |
C语言程序设计教程(第三版)课后习题12.3 (C语言代码)浏览:542 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:946 |