用C语言表示结构体friend的成员有姓名、出生日期、电话号码等。输入n(n<10)个朋友的信息,再按他们的年龄从大到小的顺序输出朋友信息
时间: 2024-02-22 11:58:30 浏览: 79
设有定义语句-c语言结构体
好的,我可以帮你解决这个问题。以下是C语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
// 定义结构体friend
struct friend {
char name[20];
char birth[20];
char phone[20];
int age;
};
int main() {
int n;
struct friend f[10], temp;
printf("请输入朋友数量(n<10):");
scanf("%d", &n);
// 输入朋友信息
for (int i = 0; i < n; i++) {
printf("请输入第%d个朋友的姓名、出生日期和电话号码:", i + 1);
scanf("%s %s %s", f[i].name, f[i].birth, f[i].phone);
// 计算年龄
int year, month, day;
sscanf(f[i].birth, "%d-%d-%d", &year, &month, &day);
f[i].age = 2021 - year;
}
// 冒泡排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (f[j].age < f[j + 1].age) {
temp = f[j];
f[j] = f[j + 1];
f[j + 1] = temp;
}
}
}
// 输出朋友信息
printf("按年龄从大到小的顺序输出朋友信息:\n");
for (int i = 0; i < n; i++) {
printf("姓名:%s,出生日期:%s,电话号码:%s,年龄:%d\n", f[i].name, f[i].birth, f[i].phone, f[i].age);
}
return 0;
}
```
你可以尝试运行这个程序并输入一些测试数据来验证它的正确性。
阅读全文