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