打酱油的


私信TA

用户名:1017563043

访问量:5672

签 名:

摸鱼使我快乐

等  级
排  名 952
经  验 3424
参赛次数 0
文章发表 73
年  龄 22
在职情况 学生
学  校 广州松田职业学院
专  业 计算机应用技术

  自我简介:

略略略略略略~~~~

解题思路:字符数字码值比字母小。转换10和K,统一数据位数和ASCII码值,就可以按顺序按位数比较了,faces[0]是点数,faces[1]是花色

注意事项:每次输入字符(串)都要捕获结束符

参考代码:

#include <stdio.h>
int main() {
	int n;									//数据量
	scanf("%d",&n);
	getchar();								//捕获结束符 
	while(n--) {
		char faces[2][3]= {'\0'},king; 		//牌面花色,王牌花色
		int judgeKing;						//判断王牌花色
		scanf("%c",&king);
//		printf("%c\n",king);				//测试代码:查看王牌花色 
		getchar();
		scanf("%s%s",faces[0],faces[1]);
		getchar();
		//	10占两位字符,转为单字母,保证位数对齐,方便比较
		//	10转为 I,K转为 Z,保证 牌面与 ASCII 同时顺序增加
		for(int i=0; i<2; i++)
			if(faces[i][0]=='1'&&faces[i][1]=='0') {
				faces[i][0]='I';
				faces[i][1]=faces[i][2];	//花色位左移
				faces[i][2]='\0';
			} else if(faces[i][0]=='K')
				faces[i][0]='Z';
//		printf("%s %s\n",faces[0],faces[1]);//测试代码:查看转换结果
		//	双方均有或没有王牌花色则判断点数 
		judgeKing=(faces[0][1]==king?1:0) - (faces[1][1]==king?1:0);
//		printf("王牌状况:%d\n",judgeKing);	//测试代码:查看王牌判断结果 
		if(judgeKing)
			printf("%s\n",judgeKing>0?"YES":"NO");
		else
			printf("%s\n",faces[0][0]>faces[1][0]?"YES":"NO");
	}
}


 

0.0分

0 人评分

  评论区

  • «
  • »