hqd125


私信TA

用户名:hqd

访问量:2934

签 名:

若MS WPS没有把握,何不把时间花在C上面?一举两得

等  级
排  名 383
经  验 5154
参赛次数 5
文章发表 6
年  龄 0
在职情况 教师
学  校
专  业

  自我简介:

学练同步,知行合一,希望大家都能理论与动手结合,拒绝理论派! 前期扎实学习打基础,后期快乐练习过二级!

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

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 人评分

  评论区

  • «
  • »