13
This commit is contained in:
parent
a1486dbb0d
commit
516cfb485b
@ -49,25 +49,31 @@ int count_products(Node *node) {
|
||||
|
||||
void run_expert_system(Node *node) {
|
||||
while (node) {
|
||||
// Если достигли листа, выводим ответ и завершаем
|
||||
if (!node->yes && !node->no) {
|
||||
printf("*%s\n", node->text);
|
||||
printf("Koniec\n");
|
||||
return;
|
||||
}
|
||||
|
||||
// Выводим текущий вопрос
|
||||
printf("%s\n", node->text);
|
||||
printf("Odpovedajte 'a' pre prvu moznost alebo 'n' pre druhu moznost\n");
|
||||
printf("Odpovedajte 'a' pre prvu moznost alebo 'n' pre druhu moznost.\n");
|
||||
|
||||
char answer;
|
||||
if (scanf(" %c", &answer) != 1) {
|
||||
// Если нет корректного ввода, завершаем
|
||||
printf("Koniec\n");
|
||||
return;
|
||||
}
|
||||
|
||||
// Переход к узлу "да" или "нет"
|
||||
if (answer == 'a') {
|
||||
node = node->yes;
|
||||
} else if (answer == 'n') {
|
||||
node = node->no;
|
||||
} else {
|
||||
// Если введен некорректный ответ, завершаем
|
||||
printf("Koniec\n");
|
||||
return;
|
||||
}
|
||||
@ -75,6 +81,7 @@ void run_expert_system(Node *node) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
void free_tree(Node *node) {
|
||||
if (node) {
|
||||
free_tree(node->yes);
|
||||
|
Loading…
Reference in New Issue
Block a user