ZZULIOJ 1190: 按出生日期排序(结构体专题)
生活随笔
收集整理的這篇文章主要介紹了
ZZULIOJ 1190: 按出生日期排序(结构体专题)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
送人玫瑰手有余香,小明希望自己能帶給他人快樂,于是小明在每個好友生日的時候發去一份生日祝福。小明希望將自己的通訊錄按好友的生日排序,這樣就查看起來方便多了,也避免錯過好友的生日。為了小明的美好愿望,你幫幫他吧。小明的好友信息包含姓名、出生日期。其中出生日期又包含年、月、日三部分信息。輸入n個好友的信息,按生日的月份和日期升序輸出所有好友信息。
輸入
首先輸入一個整數n(1<=n<=10),表示好友人數,然后輸入n行,每行包含一個好友的信息:姓名(不超過20位),以及三個整數,分別表示出生日期的年月日。
輸出
按過生日的先后(月份和日期)輸出所有好友的姓名和出生日期,用空格隔開,出生日期的輸出格式見輸出樣例。?
樣例輸入?
3 Zhangling 1985 2 4 Wangliang 1985 12 11 Fangfang 1983 6 1樣例輸出
Zhangling 1985-02-04 Fangfang 1983-06-01 Wangliang 1985-12-11 #include<stdio.h> #include<stdlib.h> typedef struct student{char name[21];int a,b,c; }student; void swap(student *x,student *y){student *t;t=(student *)malloc(sizeof(student));*t=*x;*x=*y;*y=*t; } int main(){student *stu,temp;int t,i,j;scanf("%d",&t);stu=(student *)malloc(sizeof(student)*t);getchar();for(i=0;i<t;i++){scanf("%s %d %d %d",stu[i].name,&stu[i].a,&stu[i].b,&stu[i].c);}for(i=1;i<t;i++){for(j=0;j<t-i;j++){if(stu[j].b>stu[j+1].b)swap(&stu[j],&stu[j+1]); else if(stu[j].b==stu[j+1].b){if(stu[j].c>stu[j+1].c)swap(&stu[j],&stu[j+1]); }}}for(i=0;i<t;i++)printf("%s %d-%02d-%02d\n",stu[i].name,stu[i].a,stu[i].b,stu[i].c);return 0; }?
總結
以上是生活随笔為你收集整理的ZZULIOJ 1190: 按出生日期排序(结构体专题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux挂载,格式化
- 下一篇: (八) 爬虫教程 |Scrapy框架的使