请帮我写一个用顺序表管理通讯录的程序
时间: 2023-03-27 19:01:56 浏览: 79
好的,我可以回答这个问题。以下是一个用顺序表管理通讯录的程序示例:
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 20
#define MAX_PHONE_LEN 11
#define MAX_CONTACTS 100
typedef struct {
char name[MAX_NAME_LEN];
char phone[MAX_PHONE_LEN];
} Contact;
Contact contacts[MAX_CONTACTS];
int numContacts = ;
void addContact() {
if (numContacts >= MAX_CONTACTS) {
printf("通讯录已满,无法添加新联系人。\n");
return;
}
Contact newContact;
printf("请输入联系人姓名:");
scanf("%s", newContact.name);
printf("请输入联系人电话:");
scanf("%s", newContact.phone);
contacts[numContacts] = newContact;
numContacts++;
printf("联系人已添加。\n");
}
void listContacts() {
printf("通讯录中共有 %d 个联系人:\n", numContacts);
for (int i = ; i < numContacts; i++) {
printf("%s\t%s\n", contacts[i].name, contacts[i].phone);
}
}
void searchContacts() {
char name[MAX_NAME_LEN];
printf("请输入要查找的联系人姓名:");
scanf("%s", name);
for (int i = ; i < numContacts; i++) {
if (strcmp(name, contacts[i].name) == ) {
printf("%s\t%s\n", contacts[i].name, contacts[i].phone);
return;
}
}
printf("未找到该联系人。\n");
}
int main() {
int choice;
while (1) {
printf("请选择操作:\n");
printf("1. 添加联系人\n");
printf("2. 查看联系人列表\n");
printf("3. 查找联系人\n");
printf("4. 退出程序\n");
scanf("%d", &choice);
switch (choice) {
case 1:
addContact();
break;
case 2:
listContacts();
break;
case 3:
searchContacts();
break;
case 4:
printf("程序已退出。\n");
return ;
default:
printf("无效的选择,请重新输入。\n");
}
}
}