为啥这个菜单程序在运行的时候不出现?
但是我也引用和声明了。
并且如何使菜单循环出现。因为比如说结束了1的情况需要继续操作。应该怎么修改?
为什么这个运行时不出现?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 阿里嘎多学长 2024-05-22 17:09关注
以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
您想要解决的问题:
您的问题是如何使C语言编写的个人通讯录管理系统的菜单在运行时能够正确显示,并且能够循环出现,以便用户在完成一次操作后可以继续进行其他操作。
图片内容:
第一张图片包含的代码片段显示了程序的开始部分,包括头文件的引入、一个结构体
stu
的定义,以及main
函数的开始部分,其中包含了一个switch
语句用于根据不同的选项执行不同的操作。第二张图片显示了
main
函数中switch
语句的后续部分,包括对选项1的处理,以及一个caidan
函数的定义,该函数用于显示菜单。问题出现原因:
- 代码中存在一些错误,例如
scanf
函数中使用了未初始化的结构体变量a
,这可能导致未定义行为。 caidan
函数被调用,但没有在main
函数中创建循环来持续显示菜单。- 代码中的注释和格式有些混乱,可能影响代码的可读性和调试。
问题解决方案:
- 确保在
main
函数中初始化结构体变量a
。 - 在
main
函数中添加一个循环,使得用户在完成一次操作后可以返回到菜单。 - 修正代码中的错误和格式问题,提高代码的可读性。
提供代码:
#include <stdio.h> #include <string.h> struct stu { char name[90]; char address[90]; char telephone[20]; char dianhua[20]; // 假设这是另一个字段,看起来像是电话的别名 char leibie[90]; char email[90]; char qq[90]; }; void caidan(); // 菜单函数声明 void xiugai(); // 修改联系人功能声明(根据上下文推测) int main() { struct stu a; // 初始化结构体变量 int n; while(1) { // 添加循环以持续显示菜单 caidan(); // 显示菜单 scanf("%d", &n); // 读取用户选择 switch(n) { case 1: // 处理新建联系人 break; case 2: xiugai(); // 调用修改联系人功能 break; // 其他case处理其他选项 default: printf("无效的选项,请重新输入。\n"); break; } } return 0; } void caidan() { printf("个人通讯录管理系统\n"); printf("1.新建联系人\n"); printf("2.修改联系人\n"); printf("3.查找联系人\n"); printf("4.删除联系人\n"); printf("5.显示联系人\n"); printf("6.保存并退出\n"); printf("请输入您要操作的项目的序号:"); } // 其他函数定义...
代码运行方式:
- 使用C语言编译器(如GCC)编译上述代码。
- 在命令行界面运行编译后的程序。
代码预期运行结果:
个人通讯录管理系统 1.新建联系人 2.修改联系人 3.查找联系人 4.删除联系人 5.显示联系人 6.保存并退出 请输入您要操作的项目的序号:
推荐相关链接:
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用 - 代码中存在一些错误,例如
悬赏问题
- ¥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画这种图吗