【C语言】通讯录系统设计中遇到的问题
本帖最后由 z2521367787 于 2020-9-7 15:58 编辑各位大佬好!我用C语言编写了个通讯录系统,系统的要求就是小甲鱼视频当中的要求(见下图)。目前在删除通讯录这边碰到了bug。删除通讯录当中的问题就是当我执行删除操作后,整个主函数会直接结束,就像这样:
小甲鱼的要求:
我的函数:(代码太长了,我删掉了些无关紧要的)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Address_book;
void delPerson(struct Address_book **);
void delPerson(struct Address_book **head) { //删除指令
char name;
printf("请输入要删除的联系人姓名:");
scanf("%s", name);
struct Address_book *previous = NULL;//前一个指针
struct Address_book *current = *head; //当前要删除的指针
while ((*head) != NULL) {
if (!strcmp(current->name, name)) { //定位完毕,删除,结束
previous->next = current->next;
free(current);
return;
}
previous = current;
current = current->next;
}
printf("未找到该联系人!\n");//函数走到了最后,说明没能遍历到
}
int main(void) {
int input;
char name;
long long phone_number;
struct Address_book *head = NULL;//头指针
do {
printf("请输入操作号码:\n"
"1.插入新的联系人\t2.查找已有联系人\t3.更改已有联系人\n"
"4.删除已有联系人\t5.显示当前通讯录\t6.退出通讯录");
putchar('\n');
scanf("%d", &input);
if (input < 1 || input > 6) {
printf("非法输入!");
continue;
}
switch (input) {
case 1 :
addPreson(&head);
break;
case 2:
findPerson(head);
break;
case 3:
changePerson(head);
break;
case 4:
delPerson(&head);
break;
case 5:
displayContacts(head);
break;
case 6:
freeContacts(head);
break;
}
} while (input != 6);
return 0;
}
struct Address_book {
char name;
long long phone_number;
struct Address_book *next;
};
你是想搞悬赏吧{:10_256:} 收费? liuzhengyuan 发表于 2020-9-6 20:57
收费?
不好意思,想搞悬赏的,点错了 z2521367787 发表于 2020-9-7 15:58
不好意思,想搞悬赏的,点错了
问题已经在上一个帖子中回了,虽然不缺鱼币,如果想的话可以搞给我{:10_256:} 巴巴鲁 发表于 2020-9-7 19:04
问题已经在上一个帖子中回了,虽然不缺鱼币,如果想的话可以搞给我
可以,如果你能帮我解决,我把我所有鱼币给你 3楼是我的答案:https://fishc.com.cn/thread-179605-1-1.html 巴巴鲁 发表于 2020-9-10 15:50
3楼是我的答案:https://fishc.com.cn/thread-179605-1-1.html
谢谢!之前没看到/捂脸,可能我第一次用论坛还不大会用,不好意思 z2521367787 发表于 2020-9-13 09:49
谢谢!之前没看到/捂脸,可能我第一次用论坛还不大会用,不好意思
别光说谢谢,人家帮你解决了问题,就选为最佳答案。这就是对别人帮助了你最好的回报 风过无痕1989 发表于 2020-9-13 10:14
别光说谢谢,人家帮你解决了问题,就选为最佳答案。这就是对别人帮助了你最好的回报
我不是设了最佳答案吗?奇了怪了 z2521367787 发表于 2020-9-13 22:07
我不是设了最佳答案吗?奇了怪了
提醒你一下而已,我发帖子时,你原来那个帖子还没有结帖。如果有误会,就算是我的错好了 风过无痕1989 发表于 2020-9-13 22:51
提醒你一下而已,我发帖子时,你原来那个帖子还没有结帖。如果有误会,就算是我的错好了
这样,对不起,可能我误会你的意思了
页:
[1]