#include #include #include #define MAX_LENGTH 100 #define MAX_DISHES 100 char dish_name[MAX_DISHES][MAX_LENGTH]; char dish_price[MAX_DISHES][MAX_LENGTH]; int main() { int count = 0; int empty_lines = 0; while (count < MAX_DISHES) { char dish[MAX_LENGTH]; char price[MAX_LENGTH]; fgets(dish, MAX_LENGTH, stdin); dish[strcspn(dish, "\n")] = 0; if (strlen(dish) == 0) { empty_lines++; } else { empty_lines = 0; } if (empty_lines == 2) { break; } strcpy(dish_name[count], dish); fgets(price, MAX_LENGTH, stdin); price[strcspn(price, "\n")] = 0; if (strlen(price) == 0) { empty_lines++; } else { empty_lines = 0; } if (empty_lines == 2) { break; } strcpy(dish_price[count], price); count++; } for (int i = 0; i < count - 1; i++) { for (int j = 0; j < count - i - 1; j++) { double price1 = atof(dish_price[j]); double price2 = atof(dish_price[j + 1]); if (price1 > price2) { char temp_name[MAX_LENGTH]; strcpy(temp_name, dish_name[j]); strcpy(dish_name[j], dish_name[j + 1]); strcpy(dish_name[j + 1], temp_name); char temp_price[MAX_LENGTH]; strcpy(temp_price, dish_price[j]); strcpy(dish_price[j], dish_price[j + 1]); strcpy(dish_price[j + 1], temp_price); } } } for (int i = 0; i < count; i++) { double price = atof(dish_price[i]); printf("%s\n%0.6f\n", dish_name[i], price); } return 0; }