英文姓名排序

Time Limit: 1000/1000MS (C++/Others) Memory Limit: 65536/65536KB (C++/Others)

Problem Description

在汉语里,对汉语姓名可以按拼音排序,也可以按笔画顺序排序。在英语里,对英语姓名主要按字母顺序排序。本题要求给定的一组英文姓名按长短顺序排序。

Input

输入文件中包含多个测试数据。每个测试数据的第1行是一个正整数N(0 < N < 100),表示该测试数据中英文姓名的数目;接下来有N行,每行为一个英文姓名,姓名中允许出现的字符有大小写英文字母、空格和点号(.),每个英文姓名长度至少为2、但不超过50.N=0表示输入结束。

Output

对输入文件中的每个测试数据,输出排序后的姓名。排序方法为:先按姓名长度从长到短的顺序排序,对长度相同的姓名,则按字母顺序排序。每2个测试数据的输出之间输出一个空行。


用qsort先长度后字母顺序进行排序,必须考虑如果str.length()<2 时要舍弃数据,因为这个坑WA了好多发


//#include<bits/stdc++.h>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;struct zzj{char str[55];int length(){int pos = 0;while(this->str[pos++]!='\0');return pos-1;}
};int cmp(const void *a,const void *b){zzj *p1 = (zzj *)a;zzj *p2 = (zzj *)b;if(p2->length() == p1->length())return strcmp(p1->str,p2->str);elsereturn p2->length()-p1->length();
}zzj name[105];
int main()
{int i,n;while(cin>>n && n != 0){getchar();memset(name,'\0',sizeof(name));for(i = 0;i < n;i++){cin.getline(name[i].str,55);
//            cout<<name[i].length()<<endl;if(name[i].length()<2){//这个题巨他妈坑,必须排除length不足2的情况
//                cout<<"no"<<endl;i--;}}qsort(name,n,sizeof(name[0]),cmp);for(i = 0;i <n;i++)cout<<name[i].str<<endl;cout<<endl;}return 0;
}

大二算法期末复习-排序-英文姓名排序相关推荐

  1. 【数据库】北邮国际学院大二下期末复习

    期末背诵 1 Data: facts and statistics collected together for reference or analysis. 数据:收集起来供参考或分析的事实和统计数 ...

  2. 【产品开发】北邮国际学院大二下期末复习

    产品开发和企业管理一样,背+理解ppt就完事了,也是只考一半,下面是21年考的范围的内容,文末有思维导图,要是不怎么清楚私信我. Topic 6 – Innovation 定义 Innovation: ...

  3. 【企业管理】北邮国际学院大二上期末复习

    Question 1 Lecture 8-marketing Marketing: Definition: Marketing is the social and managerial process ...

  4. CAUC数据结构与算法期末复习归纳(二)

    CAUC数据结构与算法期末复习归纳(二) 二叉树 二叉树的周游 二叉树的抽象数据类型 深度优先周游二叉树或其子树 广度优先周游二叉树 二叉树的存储结构 二叉树的链式存储结构 二叉搜索树 二叉搜索树的性 ...

  5. 大数据:大二上期期末感悟及总结

    学期期末总结 一.期末感悟 1.个人感悟 2.知识积累 3.谦卑心理 4.利用好碎片时间 5.为学历添砖加瓦 6.寒假计划 二.比赛经历及所获荣誉 1.全国高校计算机挑战赛office赛项 2.蓝桥杯 ...

  6. 第十四周 项目2 根据成绩排序或姓名排序输出姓名或成绩问题

    /* *copyright (c) 2014.烟大计算机学院 *All rights reserved. *文件名称:成绩排序处理 *作者:王争取 *完成日期:2014.11.29 *版 本 号:v1 ...

  7. 数据结构与算法期末复习总结

    为了方便复习 下面内容摘自:数据结构期末总结_夏日 の blog-CSDN博客_数据结构期末 目录 绪论 知识点 习题 线性表 知识点 习题 栈和队列 知识点 习题 串.数组和广义表 知识点 树和二叉 ...

  8. 操作系统理论笔记(二)期末复习笔记

    ⭐️我叫恒心,一名喜欢书写博客的研究生在读生. 原创不易~转载麻烦注明出处 注意: 博文是自己在学习的过程记录的笔记,水平有限,读者阅读时请慎重阅读. 欢迎转载,著名出处就可以啦. 如果帮到你,麻烦三 ...

  9. 大二上数据结构复习2

    第二章线性表 综合 一.在什么情况下用顺序表比用链表好 表长度确定,很少进行插入删除操作且经常访问元素 二.2-4 顺序表的插入和删除要求仍然保持各个元素原来的次序.设在等概率情形下, 对有 127 ...

最新文章

  1. C++返回引用,使用引用接收和非引用接收的区别
  2. sql where子查询5中字句的使用顺序
  3. set_error_handler自定义错误处理
  4. SpaceVim 1.1.0 发布,模块化 Vim IDE
  5. 高斯牛顿法 matlab代码实现
  6. antd的table遍历之后添加合计行_付费?是不可能的!20行Python代码实现一款永久免费PDF编辑工具...
  7. spring学习笔记--IOC接口
  8. CASE WHEN 及 SELECT CASE WHEN的用法
  9. 【COCOS2DX-LUA 脚本开发之十二】Hybrid模式-利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)...
  10. 马尔科夫决策过程(MDP):赌徒问题
  11. 高等代数——大学高等代数课程创新教材(丘维声)——1.2笔记+习题
  12. 辐射光电流测试软件,资深工程师告诉你如何使用示波器测试EMI辐射干扰
  13. 知道两点经纬度,计算双方距离与方向的原理
  14. 新版的豌豆荚如何连接电脑
  15. ATF lds和代码section如何关联
  16. js 生成唯一uuid
  17. 微信公众号身份证OCR识别和验真|人证比对
  18. android桌面雪花效果代码,Android营造雪花和雨滴浪漫效果
  19. Docker三大核心之容器
  20. CVPR 2022 | 浙大提出Oriented RepPoints:旋转目标检测网络

热门文章

  1. 鸿蒙ios,鸿蒙2.0和ios区别_鸿蒙2.0和ios有什么差别
  2. Rabbit安装及简单的使用
  3. 过拟合与欠拟合及解决方法
  4. 音乐播放器制作 (HTML + CSS + JavaScript)
  5. 怎样把照片中的头像扶正_礼仪|职场人士微信头像怎么选才得体?
  6. vmware虚拟机和云服务器区别,容器云与虚拟机云区别
  7. 以指标驱动业务决策,Kyligence 亮相 Gartner IT Symposium/Xpo™ 峰会
  8. 用树莓派做linux电视盒子,用树莓派制造一台“口袋电视”
  9. OA系统的集成与整合:打破信息孤岛,实现企业信息化融会贯通
  10. win10桌面记事本便签有哪款