Destiny_ing 2024-05-28 16:29 采纳率: 71%
浏览 2
已结题

这个程序有一点小问题,也不知道如何修改。

img

img

img

img

img

img

img

img


删除功能和修改功能,在删除或者修改以后在显示功能中显示空的信息。怎样修改这个问题?

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-28 16:29
    关注

    引自免费微信小程序:皆我百晓生

    为了修复删除和修改功能后显示空信息的问题,我们需要确保在执行删除和修改操作后正确更新通讯录中的数据,并且在显示(xianshi())函数中处理可能存在的空值。

    首先,我们来修复删除(shanchu())函数。当找到匹配项时,我们应该将最后一个元素复制到被删除的位置,然后减小size值,确保数组不包含空值。

    这是修改后的删除函数:

    void shanchu(txl *qw) {
        int i;
        char name[90];
    
        printf("请输入你要删除联系人的姓名:");
        scanf("%s", name);
    
        for (i = 0; i < qw->size - 1; i++) { // 避免越界,最后一次迭代不需要检查
            if (strcmp(qw->sz[i].name, name) == 0) {
                qw->sz[i] = qw->sz[qw->size - 1]; // 将最后一个元素复制到当前位置
                qw->size--; // 减少联系人数量
                break;
            }
        }
    
        if (i >= qw->size) {
            printf("未查找到相应联系人。\n");
        } else {
            printf("已删除。\n");
        }
    }
    

    接下来,修复修改(xiugai())函数。同样地,我们需要确保在找到匹配项时正确地替换信息,并且在找不到匹配项时给出正确的提示。

    这是修改后的修改函数:

    void xiugai(txl *qw) {
        char name[90];
        int i;
    
        printf("请输入你要修改的人的姓名:");
        scanf("%s", name);
    
        for (i = 0; i < qw->size; i++) {
            if (strcmp(qw->sz[i].name, name) == 0) {
                xinjian(qw); // 获取新的联系人信息
                break;
            }
        }
    
        if (i >= qw->size) {
            printf("未找到相应的联系人。\n");
        } else {
            printf("修改成功。\n");
        }
    }
    

    现在,当用户选择删除或修改功能后,通讯录中的数据会得到正确的更新,因此在显示(xianshi())函数中不会出现空信息。以下是完整的显示函数,没有改动,但在这里提供一下,以防万一:

    void xianshi(txl qw) {
        int i;
    
        for (i = 0; i < qw.size; i++) {
            printf("名字:%s\n", qw.sz[i].name);
            printf("单位:%s\n", qw.sz[i].address);
            printf("性别:%s\n", qw.sz[i].sex);
            printf("移动手机:%s\n", qw.sz[i].dianhua);
            printf("分类:%s\n", qw.sz[i].leibie);
        }
    }
    

    这些更改应该解决了您的问题。在运行程序之前,请确保所有必要的头文件都已经正确导入,并且编译器支持C语言标准。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月5日
  • 已采纳回答 5月28日
  • 创建了问题 5月28日

悬赏问题

  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥35 跳过我的世界插件ip验证
  • ¥15 抖音看过的视频,缓存在哪个文件
  • ¥15 自定义损失函数报输入参数的数目不足
  • ¥15 如果我想学习C大家有是的的资料吗
  • ¥15 根据文件名称对文件进行排序
  • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
  • ¥15 有人会用py或者r画这种图吗