SDNU_ICPC1028(结构体排序)
2017-10-28 23:07
309 查看
SDNU-1028
题意:输入n个联系人的名称和生日(月/日/年)然后按年龄大到小排序(同龄按名称升序) 输出n行联系人名称
思路:建立一个结构体类型成员包含联系人姓名,联系人生日月份,年份,定义一个这个类型的数组,然后用sort函数对各个联系人按题意排序
代码:
未完待续
题意:输入n个联系人的名称和生日(月/日/年)然后按年龄大到小排序(同龄按名称升序) 输出n行联系人名称
思路:建立一个结构体类型成员包含联系人姓名,联系人生日月份,年份,定义一个这个类型的数组,然后用sort函数对各个联系人按题意排序
代码:
#include <stdio.h> #include<iostream> #include<algorithm> #include<string.h> #include<string.h>//各种的头文件们 using namespace std; struct Conper//建立结构体类型 { char name[53]; int year; int month; int day; //结构体的成员们 };//声明结构体类型 bool compare(Conper a,Conper b)//定义一个bool型的函数作为sort排序的标准 { if(a.year>b.year)return 0;//那个,很重要!年份越大年龄越小,月也是,还有日 else if(a.year<b.year)return 1; else{ if(a.month>b.month)return 0; else if(a.month<b.month)return 1; else{ if(a.day>b.day)return 0; else if(a.day<b.day)return 1; else return strcmp(a.name,b.name)<0;//比较字符串大小的函数 } } } int main() { int n,i,j; Conper a[1010];//定义数组 bool compare(Conper a,Conper b); scanf("%d\n",&n); for(i=0;i<n;i++)//输入n组数据 { scanf("%s %d/%d/%d",&a[i].name,&a[i].month,&a[i].day,&a[i].year); } sort(a,a+n,compare);//对数组排序 for(j=0;j<n;j++) { printf("%s\n",a[j].name);//按排好的顺序依次输出 } return 0; }
未完待续
相关文章推荐
- SDNU_ICPC1115(结构体排序)
- SDNU 1281.谁是第一名 水题 结构体排序 注意名字比较
- *寒假水69——考试排名【结构体排序】【strstr函数】
- 简谈俩种不同方式对vector容器的 自定义结构体进行排序
- PTA 7-41 PAT排名汇总(25 分)结构体排序
- 【结构体与sort排序的完美结合】
- 对结构体中的数据进行排序
- 有5名学生保存在结构体数组中,编程按学生的成绩升序排序,按学生的姓名降序排序,按年龄从低到高排序, 成绩, 年龄
- hdu 1785 结构体排序
- 1137. Final Grading (25)[结构体排序]
- vector中自定义结构体的排序
- 结构体简单排序练习 题目1014:排名
- NSWOJ ~ 1100 ~ —种排序(结构体排序)
- 47.对文件中的结构体数组进行排序
- HDU 1031 Design T-Shirt(结构体2级排序)
- ZOJ 3770 : Ranking System (第14届浙江大学程序设计竞赛 D) - 结构体排序,vector
- 结构体数组排序
- ZZULI-1184 平面点排序(二)(结构体专题)
- hdoj 1862 EXCEL排序 【结构体+sort】
- 结构体数组存放学生信息并排序输出