鱼C论坛

 找回密码
 立即注册
查看: 990|回复: 11

[已解决]【C语言】通讯录系统设计中遇到的问题

[复制链接]
发表于 2020-9-6 18:03:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 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[40];
    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[40];
    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[40];
    long long phone_number;
    struct Address_book *next;
};
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-6 19:45:01 | 显示全部楼层
你是想搞悬赏吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-6 20:57:08 | 显示全部楼层
收费?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-9-7 15:58:54 | 显示全部楼层

不好意思,想搞悬赏的,点错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-7 19:04:21 | 显示全部楼层
z2521367787 发表于 2020-9-7 15:58
不好意思,想搞悬赏的,点错了

问题已经在上一个帖子中回了,虽然不缺鱼币,如果想的话可以搞给我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-8 12:20:25 | 显示全部楼层
巴巴鲁 发表于 2020-9-7 19:04
问题已经在上一个帖子中回了,虽然不缺鱼币,如果想的话可以搞给我

可以,如果你能帮我解决,我把我所有鱼币给你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-10 15:50:00 | 显示全部楼层    本楼为最佳答案   
3楼是我的答案:https://fishc.com.cn/thread-179605-1-1.html

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
z2521367787 + 5 + 5 + 3 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-13 09:49:33 | 显示全部楼层
巴巴鲁 发表于 2020-9-10 15:50
3楼是我的答案:https://fishc.com.cn/thread-179605-1-1.html

谢谢!之前没看到/捂脸,可能我第一次用论坛还不大会用,不好意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-13 10:14:17 | 显示全部楼层
z2521367787 发表于 2020-9-13 09:49
谢谢!之前没看到/捂脸,可能我第一次用论坛还不大会用,不好意思

别光说谢谢,人家帮你解决了问题,就选为最佳答案。这就是对别人帮助了你最好的回报
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-13 22:07:13 | 显示全部楼层
风过无痕1989 发表于 2020-9-13 10:14
别光说谢谢,人家帮你解决了问题,就选为最佳答案。这就是对别人帮助了你最好的回报

我不是设了最佳答案吗?奇了怪了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-13 22:51:47 | 显示全部楼层
z2521367787 发表于 2020-9-13 22:07
我不是设了最佳答案吗?奇了怪了

提醒你一下而已,我发帖子时,你原来那个帖子还没有结帖。如果有误会,就算是我的错好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-14 11:29:08 | 显示全部楼层
风过无痕1989 发表于 2020-9-13 22:51
提醒你一下而已,我发帖子时,你原来那个帖子还没有结帖。如果有误会,就算是我的错好了

这样,对不起,可能我误会你的意思了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 03:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表