#include #include struct restaurant { char *name; char *address; int average_cost; char *type_of_food; }; typedef struct restaurant restaurant; restaurant my_restaurants[] = { {"Maxies", "Bredgade 2", 205, "fisk"}, {"Minies", "Tyvej 22", 100, "kinesisk"}, {"Fiskies", "Jyllandsgade 23", 150, "fisk"}, {"Blondies", "Fredrik Bajers Vej 122", 117, "fisk"}, {"Brownies", "Bredgade 2222", 502, "fisk"} }; int compare_cost(const void *ell1, const void *ell2){ restaurant *el1 = (restaurant*)ell1; restaurant *el2 = (restaurant*)ell2; if (el1 ->average_cost == el2->average_cost) return 0; else if (el1->average_cost < el2->average_cost) return -1; else return 1; }; /* print the name of those restaurants with food of kind. Sort the restaurants according to prices. n is the number of restaurants passed. */ void print_food(char *kind, restaurant restaurants[], int n){ int i; qsort(restaurants,n,sizeof(restaurant),&compare_cost); for (i=0; i < n; i++) if (!strcmp(kind,restaurants[i].type_of_food)) printf("%s\n",restaurants[i].name); }; int main(void){ int number_of_restaurants = sizeof(my_restaurants)/sizeof(restaurant); print_food("fisk", my_restaurants, number_of_restaurants); }