问题描述:班级共有50位同学,依次输入每位同学的姓名和生日。姓名中不含有空格,生日的输入格式yyyy/mm/dd(yyyy代表出生年,mm代表出生月,dd代表出生日)。按照年龄从大到小的顺序输出每位同学的姓名,每个名字占一行。
例如:输入“李强 1995/08/15”,输出“李强…”。
思路:首先明确出生年月数值越小,年龄就越大,要将出生日期小的排在前; 这种题必然采用结构体变量;
宏定义N为50,声明结构体数组大小为N,进行N次输入操作; 在输入时采用插入解决排序问题;
关于插入位置,在已插入元素中用i从头到jio遍历,先按年份找,年份相同再按月份找,年份月份都相同再按日子找,最后i即为插入位置;
将i及之后元素后移; 将输入元素向结构体变量逐个赋值(字符串只能采用strcpy()赋值,不能整体赋值),进行下一轮输入插入操作;
输入结束后输出。
代码:
#