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

这个c语言代码运行没有结果。

img

img


这个是第一个项目就是新建联系人,但是输入一之后就没有然后了。所以想问一问为什么。

  • 写回答

3条回答 默认 最新

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

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

    在提供的C语言代码片段中存在一些错误,导致程序可能无法按预期执行。以下是修复后的代码,并对其中的问题进行了注释:

    #include <stdio.h>
    #include <string.h>
    
    // 在结构体定义前添加类型名称
    typedef struct {
        char name[90];
        char address[90];
        char telephone[20];
        char dianhua[20];
        char leibie[90];
        char email[90];
        char qq[90];
    } Contact;
    
    int main() {
        int n;
        
        printf("个人通讯录管理系统\n");
        printf("1.新建联系人\n");
        printf("2.修改联系人\n");
        printf("3.查找联系人\n");
        printf("4.删除联系人\n");
        printf("5.显示联系人\n");
        printf("6.保存并退出\n");
        printf("请输入您要操作的项目的序号: ");
        scanf("%d", &n); // 将变量地址传递给scanf
    
        switch(n) { // 使用switch语句简化代码逻辑
            case 1: // 新建联系人
                printf("姓名:");
                scanf("%s", a.name);
                printf("单位:");
                scanf("%s", a.address);
                printf("固定电话:");
                scanf("%s", a.telephone);
                scanf(" %s", a.dianhua); // 前面的空格可以消除上一行输入的换行符
                printf("分类:");
                scanf("%s", a.leibie);
                printf("EMAIL:");
                scanf("%s", a.email);
                break;
            case 2: // 修改联系人
                // 在这里编写修改联系人的代码
                break;
            case 3: // 查找联系人
                // 在这里编写查找联系人的代码
                break;
            case 4: // 删除联系人
                // 在这里编写删除联系人的代码
                break;
            case 5: // 显示联系人
                // 在这里编写显示联系人的代码
                break;
            case 6: // 保存并退出
                // 在这里编写保存数据到文件并退出程序的代码
                break;
            default:
                printf("无效的操作序号,请重新输入。\n");
                break;
        }
    
        return 0;
    }
    

    这个版本的代码修复了以下问题:

    1. 结构体类型名称缺失,已添加typedef struct定义了一个名为Contact的新类型。
    2. main()函数中的int n;声明移至main()函数开头。
    3. scanf("%d",n)改为scanf("%d", &n),因为需要将n的地址传递给scanf
    4. 使用switch语句替换多个嵌套的if-else语句,使代码更简洁易读。
    5. 移除了多余的print("06", a, email),这可能是拼写错误或未完成的部分,根据需求进行修复或删除。

    现在,当用户选择新建联系人(输入数字1)时,程序应该会提示用户输入联系人的信息。接下来,你需要根据实际需求实现其他功能,例如修改、查找、删除和显示联系人以及保存数据等。

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

报告相同问题?

问题事件

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

悬赏问题

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