扑克牌排序(结构体)

题目描述

自定义结构体表示一张扑克牌,包含类型——黑桃、红桃、梅花、方块、王;大小——2,3,4,5,6,7,8,9,10,J,Q,K,A,小王(用0表示)、大王(用1表示)。输入n,输入n张扑克牌信息,从大到小输出它们的排序结果。

假设扑克牌的排序规则是大王、小王为第一大、第二大,剩余52张扑克牌按照先花色后大小排序。

花色:黑桃>红桃>梅花>方块。

大小: A>K>Q>J>>10>9>…>2。

提示:百度sort函数、strstr函数使用。

输入

测试次数t

每组测试数据两行:

第一行:n,表示输入n张扑克牌

第二行:n张扑克牌信息,格式见样例

输出

对每组测试数据,输出从大到小的排序结果

示例输入

3
5
黑桃4 红桃10 梅花Q 方块K 黑桃A
10
大王 梅花10 红桃K 方块9 黑桃2 梅花A 方块Q 小王 黑桃8 黑桃J
5
红桃K 梅花K 黑桃K 方块K 小王

示例输出

黑桃A 黑桃4 红桃10 梅花Q 方块K
大王 小王 黑桃J 黑桃8 黑桃2 红桃K 梅花A 梅花10 方块Q 方块9
小王 黑桃K 红桃K 梅花K 方块K

注意数组要开大一点。

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;struct Puke
{char a[10];int num;int Num;bool operator < (Puke & puke2){if(num==puke2.num){return Num<puke2.Num;}else{return num<puke2.num;}  }
};void compare(Puke *p);int main()
{int t,u,n,j;cin>>t;for(u=0;u<t;u++){cin>>n;Puke puke[n];for(j=0;j<n;j++){cin>>puke[j].a;compare(&puke[j]);}sort(puke,puke+n);for(j=n-1;j>=0;j--){cout<<puke[j].a;if(j!=0)cout<<" ";}cout<<endl;}return 0;
}void compare(Puke *p)
{if(strstr(p->a, "大王"))p->num=6;else if(strstr(p->a,"小王"))p->num=5;else if(strstr(p->a,"黑桃"))p->num=4;else if(strstr(p->a,"红桃"))p->num=3;else if(strstr(p->a,"梅花"))p->num=2;else if(strstr(p->a,"方块"))p->num=1;if(strstr(p->a,"2"))p->Num=2;else if(strstr(p->a,"3"))p->Num=3;else if(strstr(p->a,"4"))p->Num=4;else if(strstr(p->a,"5"))p->Num=5;else if(strstr(p->a,"6"))p->Num=6;else if(strstr(p->a,"7"))p->Num=7;else if(strstr(p->a,"8"))p->Num=8;else if(strstr(p->a,"9"))p->Num=9;else if(strstr(p->a,"10"))p->Num=10;else if(strstr(p->a,"J"))p->Num=11;else if(strstr(p->a,"Q"))p->Num=12;else if(strstr(p->a,"K"))p->Num=13;else if(strstr(p->a,"A"))p->Num=14;
}

扑克牌排序(结构体)相关推荐

  1. 蓝桥杯 成绩排序——结构体

    蓝桥杯 成绩排序--结构体 问题描述 给出n个学生的成绩,将这些学生按成绩排序, 排序规则,优先考虑数学成绩,高的在前:数学相同,英语高的在前:数学英语都相同,语文高的在前:三门都相同,学号小的在前 ...

  2. golang 结构体 slice 排序

    go语言的slice()不仅仅可以对int类型的数组进行排序,还可以对struct类型的数组进行排序 排序函数如下 1. Slice() 不稳定排序 2. SliceStable() 稳定排序 3.  ...

  3. vector 结构体排序_指下码上横戈行——排序

    常见的排序算法有冒泡排序,选择排序,堆排序,快速排序这几种,但十三写博客的目的是为了提高自己的编程解题能力,故在这里介绍如何能快速解决那些涉及到排序的编程问题,首先针对这些问题C++ STL库中已经有 ...

  4. 结构体排序+sort()

    目录 1.结构体定义 2.sort排序 1.sort()函数的头文件和用法举例 2.sort()函数的参数说明 两个参数 三个参数 3.结构体排序 1.结构体定义 结构体(struct)是由一系列具有 ...

  5. C语言结构体和结构体排序

    结构体 结构体是一种构造数据类型 (构造数据类型包括:数组类型.结构体类型.共用体类型) 定义:把不同的数据组合成一个整体. 结构体的一般形式 struct [结构体名称]//struct是关键字 { ...

  6. C++结构体排序,优先队列,运算符重载

    文章目录 基本数据类型排序 结构体排序 比较函数 重载结构体运算符 优先队列 另外一种方法 优先队列基本知识 基本数据类型排序 #include <algorithm> #include ...

  7. C++阶段01笔记汇总【C++软件安装、C++初识、数据类型、运算符、程序流程结构、数组、函数、指针、结构体】

    C++| 匠心之作 从0到1入门学编程[视频+课件+笔记+源码] 目录 C++课程安排 1 C++初识 1.1 第一个C++程序 1.1.1 创建项目 1.1.2 创建文件 1.1.3 编写代码 1. ...

  8. C++阶段01笔记08【结构体(基本概念、定义与使用、数组、指针、嵌套、const使用)】

    C++| 匠心之作 从0到1入门学编程[视频+课件+笔记+源码] 目录 8 结构体 8.1 结构体基本概念 8.2 结构体定义和使用 示例 8.3 结构体数组 示例 8.4 结构体指针 示例 8.5 ...

  9. 使用qsort函数实现结构体

    #include<stdo.h> #include<stdlib.h> //库里面的qsort()函数 //解释: //void qsort(void* base, //bas ...

  10. C语言结构体和共同体

    文章目录 结构体 用typedef说明一个新类型 结构体类型数据的定义和成员的引用 概述 结构体的定义和使用 结构体数组 结构体排序 结构体赋值 结构体嵌套结构体 共用体(联合体) 结构体 用type ...

最新文章

  1. 【案例解析】 e家洁创始人:O2O创业的痛点与深坑
  2. 关于虚拟机第二块网卡eth1(仅主机模式)的配置问题
  3. GCT之数学公式(平面解析几何)
  4. Google与GitHub 结盟,为保护软件供应链而战
  5. 32驱动_轻松掌握pinctrl子系统驱动开发——一个虚拟pinctrl dev驱动开发
  6. 图文并茂带你了解依存句法分析
  7. 使用 rtcwake 定时唤醒休眠的linux
  8. 不要太在意别人的看法
  9. 数学中的 argmax 和 argmin 什么意思
  10. java 移动短代支付_运营商支付/短代支付的市场前景如何?
  11. 【SequoiaDB 学习笔记】巨杉分布式数据库初接触
  12. iOS 获取指南针的数据
  13. python带你采集回车桌面高清写真壁纸
  14. 旺谷图控与QT集成开发
  15. 不在上学了能不能考计算机二级,好多学生都问到底要不要参加计算机二级考试?...
  16. 究竟什么是CRM(客户关系管理系统)呢?
  17. Java小游戏开发斗地主小游戏Java小游戏源码
  18. python玩王者荣耀皮肤_爬取王者荣耀皮肤图片
  19. 【Python】先玩个魔术 ,再讲二进制 - 心灵感应魔法
  20. 3 ignite windows 上安装

热门文章

  1. facebook第三方登陆
  2. 通过bootstrap4框架制作商城网页
  3. 一维无限深势阱定态薛定谔方程
  4. 换一种视角看《百度SEM竞价推广》
  5. JavaWeb学习阶段一MySQL数据库三(数据库设计:一对一、一对多、多对多的关系设计和案例)
  6. C++按键模拟/刷屏器
  7. python列表偏移量为什么可以有-1_Python颜色条标记的偏移量为+1,而不是指定的值...
  8. Python|加权平均法读取灰度化图像介
  9. 【HTML】HTML属性
  10. (python)域名查询服务(whois)程序+检查5位以内域名到期时间邮件报警抢注域名