c
#include <stdio.h>
#include <string.h>
// 定义联系人结构体
typedef struct {
char name[50];
char phoneNumber[15];
} Contact;
// 定义联系人列表的最大大小
#define MAX_CONTACTS 100
Contact contacts[MAX_CONTACTS];
int currentContacts = 0; // 当前联系人数量
// 添加联系人函数
void addContact() {
if (currentContacts >= MAX_CONTACTS) {

printf("电话簿已满,无法添加更多联系人,n");
return;
}
Contact newContact;
printf("请输入联系人的姓名:");
scanf("%s", newContact.name);
printf("请输入联系人的电话号码:");
scanf("%s", newContact.phoneNumber);
contacts[currentContacts++] = newContact;
printf("联系人已成功添加,n");
// 查找联系人函数
void findContact() {
char name[50];
printf("请输入要查找的联系人的姓名:");
scanf("%s", name);
for (int i = 0; i < currentContacts; i++) {

if (strcmp(contacts[i].name, name) == 0) { // 如果找到匹配的联系人
printf("找到联系人:姓名 - %s,电话号码 - %sn", contacts[i].name, contacts[i].phoneNumber);
return; // 结束查找并返回结果
}
}
printf("未找到联系人,n"); // 如果未找到匹配的联系人,打印错误信息并返回结果
// 显示所有联系人函数
void displayContacts() {
printf("电话簿中的联系人:n");
for (int i = 0; i < currentContacts; i++) { // 循环遍历所有联系人并打印信息
printf("姓名:%s,电话号码:%sn", contacts[i].name, contacts[i].phoneNumber);
}
int main() {
int choice; // 用户的选择(操作)变量
while (1) { // 主循环,直到用户选择退出程序为止才结束循环并退出程序,在循环内部,根据用户的选择执行相应的操作,这里使用do-while循环也可以,因为用户需要输入选择后才能执行相应的操作,如果一开始就知道用户的选择,那么可以使用if语句来执行相应的操作,但是在这里,我们不知道用户的选择,所以使用循环来等待用户的输入,当用户在循环内部做出选择后,程序会跳出循环并结束运行,如果用户没有做出选择(例如输入无效的选择),程序会再次回到循环的开始处等待用户的输入,这样,程序就可以一直运行下去,直到用户做出有效的选择为止,这里使用while循环是合适的,如果程序一开始就知道用户的所有选择,那么可以使用if语句来执行相应的操作,而不需要使用循环,但是在这里,我们不知道用户的所有选择,所以使用循环来等待用户的输入和选择,这样,程序就可以根据用户的输入和选择来执行相应的操作了,使用循环是合适的,如果用户没有做出任何选择(例如按下退出键),程序会退出并结束运行,这是一个无限循环,直到用户做出退出选择为止才会结束循环并退出程序,这是一个安全的无限循环,如果用户没有做出任何选择或输入无效的选择,程序会再次回到循环的开始处等待用户的输入和选择,这是一个安全的无限循环结构。) { // 主循环开始处开始执行代码块中的代码,代码块中的代码会一直执行下去,直到遇到break语句才会跳出循环并结束程序的运行,在代码块中,根据用户的选择执行相应的操作(例如添加联系人、查找联系人或显示所有联系人等),如果用户没有做出任何选择或输入无效的选择(例如输入非数字字符),程序会再次回到循环的开始处等待用户的输入和选择,这是一个安全的无限循环结构,如果用户想要退出程序,只需要输入退出命令即可退出程序并结束运行,这是一个安全的无限循环结构,如果用户没有做出任何选择或输入无效的选择(例如输入非数字字符),程序会提示用户重新输入有效的选择或命令,这样,用户就可以继续进行操作了,这是一个安全的无限循环结构。) { // 主菜单开始处开始执行代码块中的代码,代码块中的代码会展示主菜单选项给用户并等待用户的选择(例如添加联系人、查找联系人或显示所有联系人等),如果用户没有做出任何选择或输入无效的选择(例如输入非数字字符),程序会提示用户重新输入有效的选择或命令并再次展示主菜单选项给用户供其选择




