C语言小程序:使用结构体数组和指针实现查找、增删和排序功能
#include <stdio.h>\n\n// 人名枚举类型\ntypedef enum {\n Wangtian,\n Chenhongjin\n} NAME;\n\n// 结构体类型\ntypedef struct {\n NAME name;\n int num;\n float money;\n} money_list;\n\n// 查找对应序号的内容\nvoid Find_num(money_list *ml, int _num) {\n // 遍历结构体数组\n for (int i = 0; i < 10; i++) {\n // 如果找到对应序号的内容\n if (ml[i].num == _num) {\n // 打印找到的内容\n printf("序号:%d 姓名:%d 金额:%.2f\n", ml[i].num, ml[i].name, ml[i].money);\n return;\n }\n }\n // 如果未找到对应序号的内容\n printf("未找到对应序号的内容\n");\n}\n\n// 增加内容\nvoid Add_num(money_list *ml, int index, NAME name, float money) {\n // 后面的元素依次往后移动一位\n for (int i = 9; i >= index; i--) {\n ml[i + 1] = ml[i];\n ml[i + 1].num++; // 更新序号\n }\n // 在指定位置插入新的内容\n ml[index].name = name;\n ml[index].money = money;\n ml[index].num = index;\n}\n\n// 删除内容\nvoid Delete_num(money_list *ml, int index) {\n // 前面的元素依次往前移动一位\n for (int i = index; i < 9; i++) {\n ml[i] = ml[i + 1];\n ml[i].num--; // 更新序号\n }\n // 清空最后一个元素\n ml[9].name = 0;\n ml[9].money = 0;\n ml[9].num = 0;\n}\n\n// 根据金额进行排序\nvoid Sort_by_money(money_list *ml) {\n // 冒泡排序\n for (int i = 0; i < 9; i++) {\n for (int j = 0; j < 9 - i; j++) {\n // 如果前一个元素的金额大于后一个元素的金额\n if (ml[j].money > ml[j + 1].money) {\n // 交换两个元素的位置\n money_list temp = ml[j];\n ml[j] = ml[j + 1];\n ml[j + 1] = temp;\n // 更新序号\n ml[j].num = j;\n ml[j + 1].num = j + 1;\n }\n }\n }\n}\n\nint main() {\n // 定义结构体数组\n money_list ml[10] = {\n {Wangtian, 0, 100.0},\n {Chenhongjin, 1, 200.0},\n {Wangtian, 2, 300.0},\n {Chenhongjin, 3, 400.0},\n {Wangtian, 4, 500.0},\n {Chenhongjin, 5, 600.0},\n {Wangtian, 6, 700.0},\n {Chenhongjin, 7, 800.0},\n {Wangtian, 8, 900.0},\n {Chenhongjin, 9, 1000.0}\n };\n\n // 查找序号为3的内容\n Find_num(ml, 3);\n\n // 在序号为4的位置插入新的内容\n Add_num(ml, 4, Chenhongjin, 1500.0);\n\n // 删除序号为2的内容\n Delete_num(ml, 2);\n\n // 根据金额进行排序\n Sort_by_money(ml);\n\n // 打印排序后的结果\n printf("排序后的结果:\n");\n for (int i = 0; i < 10; i++) {\n printf("序号:%d 姓名:%d 金额:%.2f\n", ml[i].num, ml[i].name, ml[i].money);\n }\n\n return 0;\n
原文地址: https://www.cveoy.top/t/topic/p0Z9 著作权归作者所有。请勿转载和采集!