年龄从大到小输出通讯录信息(OJ上通过,但是DEVC++上一直乱码和要多输几位)

来源:互联网 发布:vscode新建c工程 编辑:程序博客网 时间:2024/06/07 01:32

结构
第5题

【描述】

建立一个通讯录结构,包括姓名、生日和电话号码,输入n(3≤n≤50)个朋友的信息,按年龄从大到小的顺序依次输出其信息。

【输入】

输入第一行为正整数n(3≤n≤50),表示朋友数量。

下面n行为朋友信息,每行包括姓名、生日和电话号码,以空格间隔。

【输出】

分行按年龄从大到小输出朋友信息。

【输入示例】

3

张三 1985040313912345678

李四 198210200571-88123456

王五 1984061913609876543

【输出示例】

李四 198210200571-88123456

王五 1984061913609876543

张三 1985040313912345678

【提示】

声明一个通讯录结构类型:

struct addressList {

charname[10];      /* 姓名 */

longbirthday;        /* 生日 */

charphone[14];     /* 电话号码 */

};

使用qsort函数对年龄按从大到小排序。






#include<stdio.h>#include<stdlib.h>struct addressList{char name[10];long birthday;char phone[14];};int cmp(const void *a,const void *b){return *(int *)a-*(int *)b;}int main(){int n,i,j;struct addressList list[50];i=0;scanf("%d\n",&n);while(n--){scanf("%s %ld %s\n", &list[i].name, &list[i].birthday, &list[i].phone);i++;}qsort(list,i,sizeof(list[0]),cmp);//qsort函数要注意,第二个是数组元素个数! for(j=0;j<i;j++){printf("%s %ld %s\n",list[j].name,list[j].birthday,list[j].phone);//这里不小心加了&。 }} 


0 0
原创粉丝点击