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;