diff --git a/cv7/program.c b/cv7/program.c index c187b6a..c05a6d7 100644 --- a/cv7/program.c +++ b/cv7/program.c @@ -52,26 +52,33 @@ void run_expert_system(Node *node) { printf("Odpovedajte 'a' pre prvu moznost alebo 'n' pre druhu moznost.\n"); printf("%s\n", node->text); - // Check if this is a leaf node + // Проверка, если это листовой узел if (!node->yes && !node->no) { - printf("*%s\n", node->text); // Print the answer with an asterisk + printf("*%s\n", node->text); // Выводим ответ с звездочкой printf("Koniec\n"); return; } char answer; if (scanf(" %c", &answer) != 1) { - printf("Koniec\n"); // Incorrect input + printf("Koniec\n"); // Некорректный ввод return; } - // Move to the next node + // Переход к следующему узлу if (answer == 'a') { node = node->yes; } else if (answer == 'n') { node = node->no; } else { - printf("Koniec\n"); // Incorrect input + printf("Koniec\n"); // Некорректный ввод + return; + } + + // Дополнительная проверка для вывода конечного узла + if (node && !node->yes && !node->no) { + printf("*%s\n", node->text); + printf("Koniec\n"); return; } }