diff --git a/cv7/program.c b/cv7/program.c index 3b3edc6..7e2963a 100644 --- a/cv7/program.c +++ b/cv7/program.c @@ -67,15 +67,22 @@ void runExpertSystem(struct TreeNode *node) { // Отримуємо відповідь користувача char answer; - scanf(" %c", &answer); + while (1) { + // Читаємо символ і очищаємо буфер вводу + scanf(" %c", &answer); // пробіл перед %c дозволяє ігнорувати зайві пробіли + // Перевірка на коректні символи + if (answer == 'a' || answer == 'n') { + break; // Якщо відповідь правильна, виходимо з циклу + } else { + printf("Neplatna odpoved. Skuste to znova (a alebo n): "); + } + } // Переходимо до відповідного нащадка if (answer == 'a') { runExpertSystem(node->left); } else if (answer == 'n') { runExpertSystem(node->right); - } else { - printf("Nerozumiem\n"); } } @@ -90,15 +97,15 @@ void freeTree(struct TreeNode *node) { int main() { // Відкриваємо файл з базою знань - // FILE *file = fopen("baza.txt", "r"); - // if (file == NULL) { - // printf("Nepodarilo sa otvoriť súbor databázy znalostí.\n"); - // return 0; - // } + // FILE *file = fopen("baza.txt", "r"); + // if (file == NULL) { + // printf("Nepodarilo sa otvoriť súbor databázy znalostí.\n"); + // return 0; + // } // Завантажуємо базу знань в дерево struct TreeNode *root = loadTree(stdin); - // fclose(file); + // fclose(file); // Перевірка наявності порожнього рядка після бази знань if (root == NULL) {