用c++编写电话簿排序
时间: 2023-12-26 16:02:32 浏览: 137
电话薄管理系统(C++)
4星 · 用户满意度95%
编写电话簿排序的c程序主要包括以下步骤:首先定义电话簿的数据结构,可以使用结构体存储联系人的姓名和电话号码。然后通过动态内存分配来创建存储联系人信息的数组,并通过用户输入来填充数组中的数据。接下来,使用冒泡排序或者快速排序等算法对电话簿中的联系人信息进行排序。在排序完成后,可以通过循环遍历数组,并输出排好序的联系人姓名和电话号码。程序结束后,需要释放动态分配的内存,以防止内存泄露。
以下是一个简单的c程序示例,实现了电话簿的排序功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_CONTACTS 100
typedef struct {
char name[50];
char phone[20];
} Contact;
void bubbleSort(Contact* contacts, int size) {
int i, j;
Contact temp;
for (i = 0; i < size-1; i++) {
for (j = 0; j < size-i-1; j++) {
if (strcmp(contacts[j].name, contacts[j+1].name) > 0) {
temp = contacts[j];
contacts[j] = contacts[j+1];
contacts[j+1] = temp;
}
}
}
}
int main() {
Contact* contacts;
int numContacts, i;
printf("请输入联系人数量:");
scanf("%d", &numContacts);
contacts = (Contact*)malloc(sizeof(Contact)*numContacts);
for (i = 0; i < numContacts; i++) {
printf("请输入第 %d 个联系人的姓名和电话号码:", i+1);
scanf("%s %s", contacts[i].name, contacts[i].phone);
}
bubbleSort(contacts, numContacts);
printf("排序后的电话簿:\n");
for (i = 0; i < numContacts; i++) {
printf("%s\t%s\n", contacts[i].name, contacts[i].phone);
}
free(contacts);
return 0;
}
```
这个c程序中,首先定义了Contact结构体来存储联系人信息,然后通过用户输入动态分配了一个数组来保存联系人信息。接着使用冒泡排序算法对联系人信息按姓名进行排序,最后循环输出排好序的联系人姓名和电话号码。程序结束时释放了动态分配的内存。这样就实现了电话簿的排序功能。
阅读全文