职工信息管理系统,其中删除职工信息代码有点问题,只能固定删除第一个人的信息,不知道怎么修改。
2条回答 默认 最新
关注
【以下回答由 GPT 生成】
要根据指定姓名删除职工信息,你可以按照以下步骤修改代码:
- 增加一个变量
index
,用于存储要删除的记录的索引位置,默认值为-1
,表示找不到对应姓名的记录。 - 在
for
循环中,添加一个条件判断,用于找到要删除的记录的索引位置。如果找到了,将index
的值更新为当前循环变量i
的值,并跳出循环。 - 在循环外部,添加一个条件判断,检查
index
的值是否仍为默认值-1
。如果是,则说明没有找到对应姓名的记录,提示用户删除失败并返回。 - 如果找到了对应姓名的记录,使用相同的循环移位方式将
arr
数组中index
之后的记录往前移动一个位置,并将length
值减一。 - 最后,输出删除成功的提示信息。
下面是修改后的代码示例:
//删除职工信息 void deleteByName(struct employee arr[], int length) { int i, index = -1; char name[20]; printf("请输入要删除记录的姓名:"); scanf("%s", name); if (length == -1) return; for (i = 0; i < length; i++) { if (strcmp(arr[i].name, name) == 0) { index = i; break; } } if (index == -1) { printf("未找到对应姓名的记录,删除失败\n"); return; } for (i = index; i < length - 1; i++) arr[i] = arr[i + 1]; length--; //删除成功后,实际长度减1 printf("删除成功\n"); }
请注意,这里假设
struct employee
结构体中有一个成员name
,用于存储职工姓名。如果你的结构体中不是这个字段,请将strcmp(arr[i].name, name) == 0
中的.name
替换为正确的字段名。希望以上解决方案对你有所帮助。如果还有其他问题,请随时提问。
【相关推荐】
- 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7702466
- 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:【C语言结构体题】定义用于存储学生信息的结构体数组,输入学生的准考证号、姓名和成绩信息,计算总分,并按总分由高到低输出。
- 您还可以看一下 张勇老师的初级到CS开发高手通用权限管理系统全程实录课程中的 角色管理小节, 巩固相关知识点
- 除此之外, 这篇博客: C语言实现产品管理系统中的 包括的功能有输入产品的信息,对产品的信息进行修改和删除操作,根据产品的名称查询商品信息,显示全部产品记录 ,按参考价格从小到大显示记录 ,显示全部过期产品信息 等。 部分也许能够解决你的问题。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报- 增加一个变量
悬赏问题
- ¥15 在matlab中Application Compiler后的软件无法打开
- ¥15 想问一下STM32创建工程模板时遇到得问题
- ¥15 Fiddler抓包443
- ¥20 Qt Quick Android 项目报错及显示问题
- ¥15 而且都没有 OpenCVConfig.cmake文件我是不是需要安装opencv,如何解决?
- ¥15 oracleBIEE analytics
- ¥15 H.264选择性加密例程
- ¥50 windows的SFTP服务器如何能批量同步用户信息?
- ¥15 centos7.9升级python3.0的问题
- ¥15 安装CentOS6时卡住