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) {
|
void run_expert_system(Node *node) {
|
||||||
while (node) {
|
while (node) {
|
||||||
|
// Если достигли листа, выводим ответ и завершаем
|
||||||
if (!node->yes && !node->no) {
|
if (!node->yes && !node->no) {
|
||||||
printf("*%s\n", node->text);
|
printf("*%s\n", node->text);
|
||||||
printf("Koniec\n");
|
printf("Koniec\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Выводим текущий вопрос
|
||||||
printf("%s\n", node->text);
|
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;
|
char answer;
|
||||||
if (scanf(" %c", &answer) != 1) {
|
if (scanf(" %c", &answer) != 1) {
|
||||||
|
// Если нет корректного ввода, завершаем
|
||||||
printf("Koniec\n");
|
printf("Koniec\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Переход к узлу "да" или "нет"
|
||||||
if (answer == 'a') {
|
if (answer == 'a') {
|
||||||
node = node->yes;
|
node = node->yes;
|
||||||
} else if (answer == 'n') {
|
} else if (answer == 'n') {
|
||||||
node = node->no;
|
node = node->no;
|
||||||
} else {
|
} else {
|
||||||
|
// Если введен некорректный ответ, завершаем
|
||||||
printf("Koniec\n");
|
printf("Koniec\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -75,6 +81,7 @@ void run_expert_system(Node *node) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void free_tree(Node *node) {
|
void free_tree(Node *node) {
|
||||||
if (node) {
|
if (node) {
|
||||||
free_tree(node->yes);
|
free_tree(node->yes);
|
||||||
|
Loading…
Reference in New Issue
Block a user