c语言编写:输入n个怦友的信息,包括姓名、生愜、电怮号码,本题要求编写程序,按照年龄从怭到小的顺序怩次输怬通讯录。题目保证所有
时间: 2024-09-30 13:03:08 浏览: 29
在 C 语言中,你可以使用数组和结构体(struct)来存储朋友的信息,并结合循环和比较操作来实现按照年龄从小到大的排序。首先,定义一个结构体 `Friend` 来存储姓名、生日和电话:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义一个朋友信息结构体
typedef struct {
char name[50];
int birthday;
char phone[20];
} Friend;
void inputFriends(int n, Friend friends[]) {
for (int i = 0; i < n; i++) {
printf("请输入第 %d 位朋友的信息:\n", i + 1);
scanf("%s%d%s", friends[i].name, &friends[i].birthday, friends[i].phone);
}
}
void sortFriendsByAge(Friend friends[], int n) {
// 使用冒泡排序算法,这里简化了代码
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (friends[j].birthday > friends[j + 1].birthday) {
// 交换位置
Friend temp = friends[j];
friends[j] = friends[j + 1];
friends[j + 1] = temp;
}
}
}
}
void printFriends(Friend friends[], int n) {
for (int i = 0; i < n; i++) {
printf("姓名: %s, 生日: %d, 电话: %s\n", friends[i].name, friends[i].birthday, friends[i].phone);
}
}
int main() {
int numFriends;
printf("请输入朋友的数量: ");
scanf("%d", &numFriends);
Friend* friends = malloc(numFriends * sizeof(Friend)); //动态分配内存
inputFriends(numFriends, friends);
sortFriendsByAge(friends, numFriends);
printFriends(friends, numFriends);
free(friends); //释放内存
return 0;
}
```
当你运行这个程序时,它会提示用户输入朋友的信息,然后按年龄排序并输出。
阅读全文