建立一个通讯录,通信录的结构记录包括:姓名、生日、电话号码,其中生日又包括三项:年、月、日。编写程序,定义一个嵌套的结构类型,输入 n(n<10)个联系人的信息,再按他们的年龄从大到小的顺序依次输出其信息。试使用c语言编写相应程序。
时间: 2023-06-20 08:06:20 浏览: 233
以下是一个简单的C语言程序,实现了你要求的通讯录功能,并按年龄从大到小排序输出联系人信息:
```c
#include <stdio.h>
#include <string.h>
struct Date {
int year;
int month;
int day;
};
struct Contact {
char name[20];
struct Date birthday;
char phone[20];
};
int main() {
int n;
printf("请输入联系人数量(n<10):");
scanf("%d", &n);
struct Contact contacts[10];
for (int i = 0; i < n; i++) {
printf("请输入联系人姓名:");
scanf("%s", contacts[i].name);
printf("请输入联系人生日(年 月 日):");
scanf("%d %d %d", &contacts[i].birthday.year, &contacts[i].birthday.month, &contacts[i].birthday.day);
printf("请输入联系人电话号码:");
scanf("%s", contacts[i].phone);
}
// 按年龄从大到小排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (contacts[j].birthday.year < contacts[j + 1].birthday.year) {
struct Contact temp = contacts[j];
contacts[j] = contacts[j + 1];
contacts[j + 1] = temp;
} else if (contacts[j].birthday.year == contacts[j + 1].birthday.year &&
contacts[j].birthday.month < contacts[j + 1].birthday.month) {
struct Contact temp = contacts[j];
contacts[j] = contacts[j + 1];
contacts[j + 1] = temp;
} else if (contacts[j].birthday.year == contacts[j + 1].birthday.year &&
contacts[j].birthday.month == contacts[j + 1].birthday.month &&
contacts[j].birthday.day < contacts[j + 1].birthday.day) {
struct Contact temp = contacts[j];
contacts[j] = contacts[j + 1];
contacts[j + 1] = temp;
}
}
}
// 输出联系人信息
printf("按年龄从大到小排序后的联系人信息:\n");
for (int i = 0; i < n; i++) {
printf("%s %d年%d月%d日 %s\n", contacts[i].name, contacts[i].birthday.year, contacts[i].birthday.month,
contacts[i].birthday.day, contacts[i].phone);
}
return 0;
}
```
注意,这里我们使用了一个嵌套的结构体,其中 `struct Date` 表示生日,包括年、月、日三个字段,而 `struct Contact` 则包含姓名、生日和电话号码三个字段。在程序中,我们先输入 n 个联系人的信息,然后用冒泡排序按年龄从大到小排序,最后输出排序后的联系人信息。
相关推荐
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)