C语言实现小程序:使用结构体数组存储人员信息并进行增删查排序
#include <stdio.h>
#define MAX_SIZE 100
typedef enum { Tom, Jerry, Alice, Bob } Name;
typedef struct {\n Name name;\n float amount;\n int index;\n} Person;
Person people[MAX_SIZE]; int size = 0;
void addPerson(Name name, float amount) {\n if (size >= MAX_SIZE) {\n printf("无法添加更多的人员\n");\n return;\n }\n \n people[size].name = name;\n people[size].amount = amount;\n people[size].index = size;\n size++;\n}
void deletePerson(int index) {\n if (index < 0 || index >= size) {\n printf("无效的索引\n");\n return;\n }\n \n for (int i = index; i < size - 1; i++) {\n people[i] = people[i + 1];\n people[i].index = i;\n }\n \n size--;\n}
void sortByAmount() {\n for (int i = 0; i < size - 1; i++) {\n for (int j = 0; j < size - i - 1; j++) {\n if (people[j].amount > people[j + 1].amount) {\n Person temp = people[j];\n people[j] = people[j + 1];\n people[j + 1] = temp;\n \n people[j].index = j;\n people[j + 1].index = j + 1;\n }\n }\n }\n}
void printPeople() {\n for (int i = 0; i < size; i++) {\n printf("索引: %d, 姓名: %d, 金额: %.2f\n", people[i].index, people[i].name, people[i].amount);\n }\n}
int main() {\n addPerson(Tom, 100.50);\n addPerson(Jerry, 80.20);\n addPerson(Alice, 120.75);\n addPerson(Bob, 150.90);\n \n printf("初始人员列表:\n");\n printPeople();\n \n deletePerson(1);\n printf("\n删除索引为1的人员后的列表:\n");\n printPeople();\n \n addPerson(Jerry, 90.30);\n printf("\n添加姓名Jerry,金额90.30后的列表:\n");\n printPeople();\n \n sortByAmount();\n printf("\n按金额排序后的列表:\n");\n printPeople();\n \n return 0;\n}
初始人员列表: 索引: 0, 姓名: 0, 金额: 100.50 索引: 1, 姓名: 1, 金额: 80.20 索引: 2, 姓名: 2, 金额: 120.75 索引: 3, 姓名: 3, 金额: 150.90
删除索引为1的人员后的列表: 索引: 0, 姓名: 0, 金额: 100.50 索引: 1, 姓名: 2, 金额: 120.75 索引: 2, 姓名: 3, 金额: 150.90
添加姓名Jerry,金额90.30后的列表: 索引: 0, 姓名: 0, 金额: 100.50 索引: 1, 姓名: 2, 金额: 120.75 索引: 2, 姓名: 3, 金额: 150.90 索引: 3, 姓名: 1, 金额: 90.30
按金额排序后的列表: 索引: 0, 姓名: 1, 金额: 90.30 索引: 1, 姓名: 0, 金额: 100.50 索引: 2, 姓名: 2, 金额: 120.75 索引: 3, 姓名: 3, 金额: 150.90
原文地址: https://www.cveoy.top/t/topic/p3YB 著作权归作者所有。请勿转载和采集!