Destiny_ing 2024-05-28 20:36 采纳率: 71%
浏览 4
已结题

这个运行不了怎么改善?

img


这个输入的函数,总是输入到年龄结束之后就自动退出整个程序了,应该如何修改?

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2024-05-28 20:36
    关注

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


    根据提供的代码段,我们可以看到几个问题需要解决:

    1. scanf函数调用中的语法错误:在代码的95、97、99、101和103行中,scanf函数调用存在语法错误。应该是scanf而不是scanf(,并且qw->size应为qw->size而不是qw-esize

    2. 确保qw->size正确地表示当前联系人列表的大小qw->size应该是一个整数,表示联系人数组中已存储的联系人数量。

    3. 检查qw->sz数组是否已正确分配并初始化:需要确保qw->sz是一个足够大的数组,并且已经正确初始化,以便存储联系人信息。

    4. 验证xinjian函数和xianshi函数的逻辑:需要检查这两个函数的逻辑是否正确,以及是否需要进一步修改。

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

    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct {
        char name[50];
        char address[100];
        char sex[10];
        float year;
        int leibie;
    } Person;
    
    typedef struct {
        Person sz[100]; // 假设最多存储100个联系人
        int size;
    } ContactList;
    
    void xinjian(ContactList *qw) {
        if (qw->size >= 100) {
            printf("联系人列表已满。\n");
            return;
        }
    
        printf("名字:");
        scanf("%49s", qw->sz[qw->size].name); // 限制输入长度,防止溢出
    
        printf("单位:");
        scanf("%99s", qw->sz[qw->size].address); // 限制输入长度,防止溢出
    
        printf("性别:");
        scanf("%9s", qw->sz[qw->size].sex); // 限制输入长度,防止溢出
    
        printf("年龄:");
        scanf("%f", &qw->sz[qw->size].year);
    
        printf("分类:");
        scanf("%d", &qw->sz[qw->size].leibie);
    
        qw->size++;
        printf("\n");
    }
    
    void xianshi(ContactList qw) {
        // 假设这个函数是用来显示联系人列表的,需要根据实际情况实现
        for (int i = 0; i < qw.size; i++) {
            printf("联系人 %d:\n", i + 1);
            printf("名字:%s\n", qw.sz[i].name);
            printf("单位:%s\n", qw.sz[i].address);
            printf("性别:%s\n", qw.sz[i].sex);
            printf("年龄:%f\n", qw.sz[i].year);
            printf("分类:%d\n", qw.sz[i].leibie);
        }
    }
    
    int main() {
        ContactList myContacts;
        myContacts.size = 0; // 初始化联系人数量为0
    
        // 假设这里有一个循环,用户可以选择添加联系人等操作
        // ...
    
        return 0;
    }
    

    注意

    • 我假设qw->sz是一个Person类型的数组,并且qw->sizeint类型。
    • 我添加了对输入长度的限制,以防止缓冲区溢出。
    • xianshi函数需要根据实际情况实现,这里只是一个示例。

    参考资料

    请根据你的具体需求调整上述代码。如果你需要进一步的帮助,请提供更多的上下文信息。

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

报告相同问题?

问题事件

  • 系统已结题 6月6日
  • 已采纳回答 5月29日
  • 创建了问题 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画这种图吗