用c语言完成通信录的结构记录包括:姓名、生日、电话号码,其中生日又包括三项: 年、月、日。定义一个嵌套的结构类型,输入 n(n<10)个联系人的信息,再按他们的年龄从 大到小的顺序依次输出其信息。试编写相应程序。
时间: 2024-05-19 22:12:24 浏览: 26
这个问题属于计算机科学,我可以回答。以下是C语言的代码实现:
#include <stdio.h>
#include <stdlib.h>
typedef struct birthday {
int year;
int month;
int day;
} Birthday;
typedef struct contact {
char name[20];
Birthday birthday;
char phone[12];
} Contact;
int compare(const void *p1, const void *p2) {
Contact *c1 = (Contact *) p1;
Contact *c2 = (Contact *) p2;
int age1 = 2022 - c1->birthday.year;
int age2 = 2022 - c2->birthday.year;
return age2 - age1; //按年龄从大到小排序
}
int main() {
int n;
printf("请输入联系人数量:");
scanf("%d", &n);
Contact contacts[n];
for (int i = 0; i < n; i++) {
printf("请输入联系人的姓名、生日(年 月 日)、电话号码:");
scanf("%s %d %d %d %s", contacts[i].name, &contacts[i].birthday.year, &contacts[i].birthday.month, &contacts[i].birthday.day, contacts[i].phone);
}
qsort(contacts, n, sizeof(Contact), compare);
printf("按年龄从大到小排序后的联系人信息为:\n");
for (int i = 0; i < n; i++) {
int age = 2022 - contacts[i].birthday.year;
printf("姓名:%s,年龄:%d,生日:%d年%d月%d日,电话号码:%s\n", contacts[i].name, age, contacts[i].birthday.year, contacts[i].birthday.month, contacts[i].birthday.day, contacts[i].phone);
}
return 0;
}
相关推荐
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)