Destiny_ing 2024-05-30 21:16 采纳率: 71%
浏览 0
已结题

如何修改程序呢,显示的有些奇怪。

img


这个已经从文件中提取数据了,这是一个通讯录系统,如何修改来使如果存在这个联系人就直接输出,联系人不存在。如果这个联系人不存在就新建??

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-05-30 21:16
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    从提供的代码片段来看,这是一个C语言编写的通讯录系统的一部分,但代码存在一些错误和不清晰的地方。我将根据你的需求,对代码进行修改,并提供一些解释。

    首先,让我们纠正代码中的错误和不规范的地方:

    1. 函数名和变量名应该是有意义的英文单词,而不是拼音或随机字符。
    2. 数组声明时不应该使用科学记数法(例如,9e 应为 9)。
    3. scanfprintf 函数中的格式字符串应该使用正确的转义字符(\n 而不是 \\n)。
    4. printf 中的占位符应该正确使用(例如,%s 而不是 %s]t)。
    5. for 循环的条件判断应该是 i < qw->size 而不是 i < qw->size
    6. strcmp 函数的返回值应该正确处理(如果返回 0,则表示字符串相等)。
    7. printf 函数中的字符串应该使用双引号 " 而不是单引号 '

    下面是修改后的代码示例:

    #include <stdio.h>
    #include <string.h>
    
    #define MAX_CONTACTS 100
    
    typedef struct {
        char name[20];
        char sex[10];
        char phone[15];
        float year;
        char leibie[20];
    } Contact;
    
    typedef struct {
        Contact contacts[MAX_CONTACTS];
        int size;
    } AddressBook;
    
    void addContact(AddressBook *ab) {
        char name[20];
        printf("请输入你要增加的人的姓名:\n");
        scanf("%19s", name); // 使用 %19s 限制输入长度,防止溢出
    
        for (int i = 0; i < ab->size; i++) {
            if (strcmp(ab->contacts[i].name, name) == 0) {
                printf("此联系人已存在:\n");
                printf("名字: %s\n", ab->contacts[i].name);
                printf("性别: %s\n", ab->contacts[i].sex);
                printf("电话: %s\n", ab->contacts[i].phone);
                printf("年龄: %.2f\n", ab->contacts[i].year);
                printf("分类: %s\n", ab->contacts[i].leibie);
                return;
            }
        }
    
        if (ab->size < MAX_CONTACTS) {
            printf("请输入新联系人的信息:\n");
            printf("名字: %s\n", name);
            // 假设用户已经输入了名字,接下来可以让用户输入其他信息
            // 这里省略了其他信息的输入代码
            ab->contacts[ab->size++] = (Contact){.name = name}; // 添加新联系人
            printf("联系人添加成功。\n");
        } else {
            printf("通讯录已满,无法添加更多联系人。\n");
        }
    }
    
    int main() {
        AddressBook myAddressBook = {{0}, 0}; // 初始化通讯录,没有联系人
        addContact(&myAddressBook);
        return 0;
    }
    

    请注意,这段代码只是一个示例,你需要根据实际情况添加其他联系人信息的输入和处理逻辑。此外,为了完整性,你可能还需要实现其他通讯录管理功能,比如删除联系人、搜索联系人等。

    至于参考资料,你可以查看C语言的官方文档或者在线教程来了解更多关于结构体、数组和字符串处理的知识。这里提供一个C语言基础教程的链接,供你参考:

    C语言教程 - 菜鸟教程

    希望这些信息对你有帮助!如果有其他问题,欢迎继续提问。

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥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画这种图吗