usaa24/cv2/program.c

76 lines
1.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_LENGTH 100
#define MAX_DISHES 100
char dish_name[MAX_DISHES][MAX_LENGTH];
double dish_price[MAX_DISHES];
int main() {
int count = 0;
int empty_lines = 0;
while (count < MAX_DISHES) {
char dish[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);
char price[MAX_LENGTH];
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;
}
// Преобразуем цену в число с плавающей запятой
dish_price[count] = atof(price);
count++;
}
// Сортируем блюда по цене
for (int i = 0; i < count - 1; i++) {
for (int j = 0; j < count - i - 1; j++) {
if (dish_price[j] > dish_price[j + 1]) {
// Меняем местами цены
double temp_price = dish_price[j];
dish_price[j] = dish_price[j + 1];
dish_price[j + 1] = temp_price;
// Меняем местами названия
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);
}
}
}
// Выводим отсортированные блюда и их цены
for (int i = 0; i < count; i++) {
printf("%s\n%.6f\n", dish_name[i], dish_price[i]);
}
return 0;
}