Untitled
unknown
plain_text
3 years ago
1.3 kB
3
Indexable
#include<stdio.h> #include<stdlib.h> #include"function.h" Item* CreateList(int N) { return (Item*)malloc(sizeof(Item)*N); } void AddItem( Item* L, int idx, char* name, int price, int discount, int quality ) { L[idx].name=(char*)malloc(sizeof(char)*(strlen(name)+1)); strcpy(L[idx].name,name); L[idx].price=price; L[idx].discount=discount; L[idx].quality=quality; } void DeleteList(Item* L, int N) { for(int i=0;i<N;i++) { free(L[i].name); } free(L); } int price_cmp( const void* lhs, const void* rhs ) { const Item* l=(const Item*) lhs; const Item* r=(const Item*) rhs; if(((l->price)-(l->discount))>((r->price)-(r->discount))) return 1; else if (((l->price)-(l->discount))<((r->price)-(r->discount))) return -1; else return 0; } int discount_cmp( const void* lhs, const void* rhs ) { const Item* l=(const Item*) lhs; const Item* r=(const Item*) rhs; if(l->discount > r->discount) return -1; else if (l->discount < r->discount) return 1; else return 0; } int quality_cmp( const void* lhs, const void* rhs ) { const Item* l=(const Item*) lhs; const Item* r=(const Item*) rhs; if(l->quality > r->quality) return -1; else if (l->quality < r->quality) return 1; else return 0; }
Editor is loading...