• 大小: 1.21KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-02-01
  • 语言: C/C++
  • 标签: 身份证  排序  

资源简介

输入一组无序的人员信息(不超过100位),人员信息包括姓名(小写字母拼音表示,不超过20个
字符)和身份证号(18位数字或大写字母),编写程序将人员信息按照年龄由小到大排序输出,若
年龄相同,则按照姓名字典序由小到大输出。

资源截图

代码片段和文件信息

#include
#include
#include
typedef struct People{
    char name[25]; //姓名
    char ID[20];   //身份证号码
    //生日
    int  year;
    int  month;
    int  day;
}People;
People p[105];
void get_birth(struct People* p)
{
    int i=0;
    for(i=0;i<4;i++){
        p->year=p->year*10+(p->ID[i+6]-0-48);
    }
    for(i=0;i<2;i++){
        p->month=p->month*10+(p->ID[i+10]-0-48);
        p->day=p->day*10+(p->ID[i+12]-0-48);
    }
}

int cmp(const void* aconst void* b)
{  //年月日越大,年龄越小
    struct People* p1=(People*)a;
    struct People* p2=(People*)b;

评论

共有 条评论