From 9b0353c04dbd4c09b897fad476c08ced5c1b7100 Mon Sep 17 00:00:00 2001 From: Deinerovych Date: Wed, 6 Nov 2024 12:22:24 +0100 Subject: [PATCH] 22 --- cv7/program.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/cv7/program.c b/cv7/program.c index d5c82a0..e8216f6 100644 --- a/cv7/program.c +++ b/cv7/program.c @@ -49,17 +49,19 @@ int count_products(Node *node) { void run_expert_system(Node *node) { while (node) { - // Если достигли конечного узла (ответа), выводим ответ и завершаем работу + // Выводим приглашение для ввода + printf("Odpovedajte 'a' pre prvu moznost alebo 'n' pre druhu moznost.\n"); + + // Выводим текущий вопрос + printf("%s\n", node->text); + + // Проверяем, достигли ли конечного узла if (!node->yes && !node->no) { printf("*%s\n", node->text); printf("Koniec\n"); return; } - // Выводим приглашение для ввода - printf("Odpovedajte 'a' pre prvu moznost alebo 'n' pre druhu moznost.\n"); - printf("%s\n", node->text); - char answer; if (scanf(" %c", &answer) != 1) { printf("Koniec\n"); // Некорректный ввод @@ -75,9 +77,17 @@ void run_expert_system(Node *node) { printf("Koniec\n"); // Некорректный ответ return; } + + // Если следующий узел - конечный, выводим ответ и завершаем + if (node && !node->yes && !node->no) { + printf("*%s\n", node->text); + printf("Koniec\n"); + return; + } } } + void free_tree(Node *node) { if (node) { free_tree(node->yes);