From 6cce783d90b16c7ea69465d35ab9f557597de720 Mon Sep 17 00:00:00 2001 From: Yevhen Kozirovskyi Date: Wed, 2 Oct 2024 18:01:23 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20cv1/program.c?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv1/program.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/cv1/program.c b/cv1/program.c index c56e5ae..c923f45 100644 --- a/cv1/program.c +++ b/cv1/program.c @@ -31,13 +31,18 @@ int main() { // Запрос ингредиента printf("Zadaj hladanu surovinu:\n"); - scanf("%s", ingredient); // Использование scanf для ввода одной строки без пробелов + if (fgets(ingredient, MAX_NAME_LEN, stdin) == NULL) { + return 0; // Выход, если ввод не удался + } + ingredient[strcspn(ingredient, "\n")] = '\0'; // Удаление символа новой строки + printf("%s\n", ingredient); // Вывод ингредиента сразу после запроса // Запрос списка блюд printf("Zadaj jedalny listok:\n"); while (1) { char name[MAX_NAME_LEN], price[MAX_NAME_LEN]; + // Чтение названия блюда if (fgets(name, MAX_NAME_LEN, stdin) == NULL) { return 0; // Выход, если ввод не удался } @@ -48,6 +53,7 @@ int main() { break; } + // Чтение цены if (fgets(price, MAX_NAME_LEN, stdin) == NULL) { return 0; // Выход, если ввод не удался } @@ -67,6 +73,7 @@ int main() { decodovane_slovo(ingredient); // Поиск и вывод блюд, содержащих искомый ингредиент + int found = 0; // Флаг для отслеживания, если хотя бы одно блюдо будет найдено for (int i = 0; i < count; i++) { char decoded_name[MAX_NAME_LEN]; strncpy(decoded_name, dishes[i][0], MAX_NAME_LEN - 1); @@ -76,9 +83,14 @@ int main() { if (strstr(decoded_name, ingredient) != NULL) { // Проверка на совпадение с ингредиентом printf("%s %s\n", dishes[i][0], dishes[i][1]); // Вывод оригинального названия и цены + found = 1; } } + if (!found) { + printf("\n"); // Если блюда не найдены, добавить пустую строку перед счетчиком + } + // Вывод количества введенных блюд printf("Nacitanych %d poloziek.\n", count); return 0;