zoukankan      html  css  js  c++  java
  • 结构体 按出生年月排序

    题目描述

    送人玫瑰手有余香,小明希望自己能带给他人快乐,于是小明在每个好友生日的时候发去一份生日祝福。小明希望将自己的通讯录按好友的生日排序排序,这样就查看起来方便多了,也避免错过好友的生日。为了小明的美好愿望,你帮帮他吧。小明的好友信息包含姓名、出生日期。其中出生日期又包含年、月、日三部分信息。输入n个好友的信息,按生日的月份和日期升序输出所有好友信息。

    输入

    首先输入一个整数n(1<=n<=10),表示好友人数,然后输入n行,每行包含一个好友的信息:姓名(不超过8位),以及三个整数,分别表示出生日期的年月日。

    输出

    按过生日的先后(月份和日期)输出所有好友的姓名和出生日期,用空格隔开,出生日期的输出格式见输出样例。 

    样例输入

    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

        

    PS : 我学结构体写的的第一道题

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <string.h>
     4 #define N 10
     5 int cmp( const void *a ,const void *b);
     6 typedef struct student
     7 {
     8     char name[10];
     9     int year;
    10     int month;
    11     int day;
    12 } str;
    13 int main ()
    14 {
    15     str a[N];
    16     int n, i;
    17     scanf("%d", &n);
    18     for (i = 0; i<n; i++)
    19     {
    20         scanf("%s", a[i].name);
    21         scanf("%d", &a[i].year);
    22         scanf("%d", &a[i].month);
    23         scanf("%d", &a[i].day);
    24     }
    25     qsort(a, n, sizeof(a[0]), cmp);
    26     for (i = 0; i<n; i++)
    27     {
    28         printf("%s ", a[i].name);
    29         printf("%d-", a[i].year);
    30         if (a[i].month<10)
    31             printf("0");
    32         printf("%d-", a[i].month);
    33         if (a[i].day<10)
    34             printf("0");
    35         printf("%d
    ", a[i].day);
    36     }
    37 }
    38 int cmp( const void *a ,const void *b)
    39 {
    40     struct student *c, *d;
    41     c=(struct student *)a;
    42     d=(struct student *)b;
    43     if(d->month!=c->month)
    44         return  c->month - d->month;
    45     else
    46         return c->day - d->day;
    47 }
  • 相关阅读:
    Html 回顾
    Parallel 并行编程
    Task---常用的多线程(基于多线程线程)
    Threadpool 可以对线程加以管理的封装
    AsyncThreads---异步多线程
    Abstract 封装,继承,多态
    IO&&Serize 利用线程Thread.Sleep实现"自动输出"
    Ling && Lambda
    Delegate&&Event
    Delegate &&Lambda
  • 原文地址:https://www.cnblogs.com/yishilin/p/4366726.html
Copyright © 2011-2022 走看看