#include <stdio.h>

typedef enum { Wangtian, Chenhongjin } NAME;

typedef struct { NAME name; int num; float money; } money_list;

void Find_num(money_list *ml, int _num) { for (int i = 0; i < _num; i++) { if (ml[i].num == _num) { printf("Name: %d\n", ml[i].name); printf("Number: %d\n", ml[i].num); printf("Money: %.2f\n", ml[i].money); return; } } printf("No record found.\n"); }

void Add_num(money_list *ml, int *count) { money_list newRecord; printf("Enter name (0 for Wangtian, 1 for Chenhongjin): "); scanf("%d", &(newRecord.name)); printf("Enter number: "); scanf("%d", &(newRecord.num)); printf("Enter money: "); scanf("%f", &(newRecord.money));

ml[*count] = newRecord;
(*count)++;

printf("Record added successfully.\n");

}

void Delete_num(money_list *ml, int *count, int _num) { int i; for (i = 0; i < *count; i++) { if (ml[i].num == _num) { break; } }

if (i == *count) {
    printf("No record found.\n");
    return;
}

for (int j = i; j < *count - 1; j++) {
    ml[j] = ml[j+1];
}

(*count)--;

printf("Record deleted successfully.\n");

}

void Sort_by_money(money_list *ml, int count) { for (int i = 0; i < count - 1; i++) { for (int j = 0; j < count - i - 1; j++) { if (ml[j].money > ml[j+1].money) { money_list temp = ml[j]; ml[j] = ml[j+1]; ml[j+1] = temp; } } }

printf("Records sorted by money.\n");

}

int main() { money_list ml[100]; int count = 0;

int choice;
int num;

do {
    printf("\n1. Find record\n");
    printf("2. Add record\n");
    printf("3. Delete record\n");
    printf("4. Sort records by money\n");
    printf("5. Exit\n");
    printf("Enter your choice: ");
    scanf("%d", &choice);
    
    switch (choice) {
        case 1:
            printf("Enter number to search: ");
            scanf("%d", &num);
            Find_num(ml, num);
            break;
        case 2:
            Add_num(ml, &count);
            break;
        case 3:
            printf("Enter number to delete: ");
            scanf("%d", &num);
            Delete_num(ml, &count, num);
            break;
        case 4:
            Sort_by_money(ml, count);
            break;
        case 5:
            printf("Exiting program.\n");
            break;
        default:
            printf("Invalid choice. Please try again.\n");
            break;
    }
} while (choice != 5);

return 0;

}

这个小程序使用了一个大小为100的money_list结构体数组来存储记录。count变量用于记录当前记录的数量。用户可以选择不同的操作,包括查找、增加、删除和排序。根据用户的选择,调用相应的函数来完成操作。

C语言小程序:使用结构体数组和指针实现数据存储、查找、增加、删除和排序

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

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