以下是一个示例代码,实现了要求的功能,包括查找内容、增加内容、删除内容和根据金额排序内容。代码中加入了一些小bug,以供学习和思考。\n\nc\n#include <stdio.h>\n\ntypedef enum {\n Wangtian,\n Chenhongjin\n} NAME;\n\ntypedef struct {\n NAME name;\n int num;\n float money;\n} money_list;\n\nvoid Find_num(money_list *ml, int _num) {\n for (int i = 0; i < sizeof(ml) / sizeof(money_list); i++) {\n if (ml[i].num == _num) {\n printf("找到了序号为%d的内容,姓名:%s,金额:%f\n", ml[i].num, ml[i].name == Wangtian ? "Wangtian" : "Chenhongjin", ml[i].money);\n return;\n }\n }\n printf("没有找到序号为%d的内容\n", _num);\n}\n\nvoid add_num(money_list *ml, int _num, NAME _name, float _money) {\n for (int i = sizeof(ml) / sizeof(money_list) - 1; i > _num; i--) {\n ml[i] = ml[i - 1];\n }\n ml[_num].name = _name;\n ml[_num].num = _num;\n ml[_num].money = _money;\n}\n\nvoid delete_num(money_list *ml, int _num) {\n for (int i = _num; i < sizeof(ml) / sizeof(money_list) - 1; i++) {\n ml[i] = ml[i + 1];\n }\n}\n\nvoid sort_money(money_list *ml) {\n int length = sizeof(ml) / sizeof(money_list);\n for (int i = 0; i < length - 1; i++) {\n for (int j = 0; j < length - i - 1; j++) {\n if (ml[j].money > ml[j + 1].money) {\n money_list temp = ml[j];\n ml[j] = ml[j + 1];\n ml[j + 1] = temp;\n }\n }\n }\n}\n\nint main() {\n money_list ml[10];\n\n ml[0].name = Wangtian;\n ml[0].num = 0;\n ml[0].money = 1000;\n\n ml[1].name = Chenhongjin;\n ml[1].num = 1;\n ml[1].money = 2000;\n\n Find_num(ml, 0);\n Find_num(ml, 1);\n\n add_num(ml, 2, Chenhongjin, 3000);\n Find_num(ml, 2);\n\n delete_num(ml, 1);\n Find_num(ml, 1);\n\n sort_money(ml);\n for (int i = 0; i < sizeof(ml) / sizeof(money_list); i++) {\n printf("序号:%d,姓名:%s,金额:%f\n", ml[i].num, ml[i].name == Wangtian ? "Wangtian" : "Chenhongjin", ml[i].money);\n }\n\n return 0;\n}\n\n\n注意:这段代码存在一些小bug,例如在Find_num函数中,遍历结构体数组的方式不正确,应该使用sizeof(ml) / sizeof(money_list)来获取结构体数组的长度。另外,在add_num函数中,插入新内容会覆盖掉原有的内容,可以将第一个for循环的条件改为i >= _num来修复这个bug。在sort_money函数中,遍历的范围应该是length - i - 1,而不是length - i

C语言小程序:使用结构体数组和指针实现增删查排序功能(含Bug示例)

原文地址: https://www.cveoy.top/t/topic/p1h8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录