/** * Example of qsort: sort parts of a drone in ascending order in terms of price * Ying Li * 10/03/2019 */ #include #include #include typedef struct { char name[50]; int price; } part; /* We are using the qsort function, which has this declaration: void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)) */ int compare (const void* p1, const void* p2) { int m = ((part *)p1)->price; int n = ((part *)p2)->price; return m-n; } int main () { part drone[6]; strcpy(drone[0].name, "DJI Flamewheel Kit"); drone[0].price = 299; strcpy(drone[1].name, "Navio2"); drone[1].price = 117; strcpy(drone[2].name, "Power Module"); drone[2].price = 22; strcpy(drone[3].name, "Receiver"); drone[3].price = 30; strcpy(drone[4].name, "Batteries"); drone[4].price = 60; strcpy(drone[5].name, "Sonar"); drone[5].price = 25; qsort (drone, 6, sizeof(part), compare); for (int i = 0; i < 6; i++) { printf("%s: %d\n\n", drone[i].name, drone[i].price); } return 0; }