解题思路:
给扑克牌标记
注意事项:
参考代码:
#include<stdio.h>
#include<string.h>
struct
{
char nu[3];
char lei;
int num;
int n1;
}Pai[5],t;
int main()
{
char buf[100];
int i=0,j;
gets(buf);
for(j=0;j<5;j++)
{
if(buf[i]!='1')
{
if(buf[i]>='2'&&buf[i]<='9')
Pai[j].num=buf[i]-'0';
else
{
if(buf[i]=='J') Pai[j].num=11;
if(buf[i]=='Q') Pai[j].num=12;
if(buf[i]=='K') Pai[j].num=13;
if(buf[i]=='A') Pai[j].num=14;
}
Pai[j].nu[0]=buf[i++];
Pai[j].nu[1]='\0';
}
else
{
Pai[j].nu[0]=buf[i++];
Pai[j].nu[1]=buf[i++];
Pai[j].nu[2]='\0';
Pai[j].num=10;
}
switch(buf[i])
{
case 'd':Pai[j].n1=1;break;
case 'c':Pai[j].n1=2;break;
case 'h':Pai[j].n1=3;break;
case 's':Pai[j].n1=4;break;
}
Pai[j].lei=buf[i++];
}
for(i=0;i<5;i++)
{
for(j=0;j<5-1-i;j++)
{
if(Pai[j].num>Pai[j+1].num)
{
t=Pai[j];
Pai[j]=Pai[j+1];
Pai[j+1]=t;
}
else if(Pai[j].num==Pai[j+1].num)
{
if(Pai[j].n1>Pai[j+1].n1)
{
t=Pai[j];
Pai[j]=Pai[j+1];
Pai[j+1]=t;
}
}
}
}
for(j=0;j<5;j++)
{
if(j!=0) printf(" ");
printf("%s%c",Pai[j].nu,Pai[j].lei);
}
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复