解题思路:表面看题目很简单,但实际上还是要考虑以下几点

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.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论