Обновить cv2/program.c

This commit is contained in:
Yevhen Kozirovskyi 2024-10-05 11:55:41 +00:00
parent 5a907b7950
commit 6d525d44f9

View File

@ -15,44 +15,37 @@ int main() {
char dish[MAX_LENGTH]; char dish[MAX_LENGTH];
char price[MAX_LENGTH]; char price[MAX_LENGTH];
// Читаем название блюда
if (fgets(dish, MAX_LENGTH, stdin) == NULL) { if (fgets(dish, MAX_LENGTH, stdin) == NULL) {
break; // Если чтение не удалось, выходим из цикла break;
} }
dish[strcspn(dish, "\n")] = 0; // Убираем символ новой строки dish[strcspn(dish, "\n")] = 0;
// Проверяем на пустую строку
if (strlen(dish) == 0) { if (strlen(dish) == 0) {
break; // Выход из цикла при пустой строке break;
} }
strcpy(dish_name[count], dish); // Сохраняем название блюда strcpy(dish_name[count], dish);
// Читаем цену блюда
if (fgets(price, MAX_LENGTH, stdin) == NULL) { if (fgets(price, MAX_LENGTH, stdin) == NULL) {
break; // Если чтение не удалось, выходим из цикла break;
} }
price[strcspn(price, "\n")] = 0; // Убираем символ новой строки price[strcspn(price, "\n")] = 0;
// Проверяем на пустую строку
if (strlen(price) == 0) { if (strlen(price) == 0) {
break; // Выход из цикла при пустой строке break;
} }
// Преобразуем цену в число с плавающей запятой
dish_price[count] = atof(price); dish_price[count] = atof(price);
count++; count++;
} }
// Сортируем блюда по цене
for (int i = 0; i < count - 1; i++) { for (int i = 0; i < count - 1; i++) {
for (int j = 0; j < count - i - 1; j++) { for (int j = 0; j < count - i - 1; j++) {
if (dish_price[j] > dish_price[j + 1]) { if (dish_price[j] > dish_price[j + 1] ||
// Меняем местами цены (dish_price[j] == dish_price[j + 1] && strcmp(dish_name[j], dish_name[j + 1]) > 0)) {
double temp_price = dish_price[j]; double temp_price = dish_price[j];
dish_price[j] = dish_price[j + 1]; dish_price[j] = dish_price[j + 1];
dish_price[j + 1] = temp_price; dish_price[j + 1] = temp_price;
// Меняем местами названия
char temp_name[MAX_LENGTH]; char temp_name[MAX_LENGTH];
strcpy(temp_name, dish_name[j]); strcpy(temp_name, dish_name[j]);
strcpy(dish_name[j], dish_name[j + 1]); strcpy(dish_name[j], dish_name[j + 1]);
@ -61,10 +54,9 @@ int main() {
} }
} }
// Выводим отсортированные блюда и их цены
for (int i = 0; i < count; i++) { for (int i = 0; i < count; i++) {
printf("%s\n%.6f\n", dish_name[i], dish_price[i]); printf("%s\n%.6f\n", dish_name[i], dish_price[i]);
} }
return 0; return 0;
} }