From 6e432d53ad76570dc356c2ed18f57b40678bd584 Mon Sep 17 00:00:00 2001 From: Weber Date: Thu, 14 Nov 2024 17:15:33 +0000 Subject: [PATCH] test --- cv7/program.c | 65 ++++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/cv7/program.c b/cv7/program.c index e4cde88..bb40da3 100644 --- a/cv7/program.c +++ b/cv7/program.c @@ -34,51 +34,52 @@ Uzol* nacitaj_strom() { return uzol; } -void spusti_system(Uzol *uzol) { - while (uzol != NULL) { - if (uzol->ano == NULL && uzol->nie == NULL) { - printf("*%s\nKoniec\n", uzol->text); - return; - } +void vypis_otazku(Uzol *uzol) { + if (uzol == NULL) { + return; + } - printf("Odpovedajte 'a' pre prvu moznost alebo 'n' pre druhu moznost.\n"); - printf("%s\n", uzol->text); + printf("%s\n", uzol->text); + if (uzol->ano == NULL && uzol->nie == NULL) { + return; + } - char odpoved; - if (scanf(" %c", &odpoved) != 1 || (odpoved != 'a' && odpoved != 'n')) { - printf("Nerozumiem\n"); - return; - } + printf("Odpovedajte 'a' pre prvu moznost alebo 'n' pre druhu moznost.\n"); + char odpoved; + while (1) { + odpoved = getchar(); + getchar(); // prečítanie nového riadku po odpovedi if (odpoved == 'a') { - uzol = uzol->ano; + if (uzol->ano != NULL) { + vypis_otazku(uzol->ano); + } + break; + } else if (odpoved == 'n') { + if (uzol->nie != NULL) { + vypis_otazku(uzol->nie); + } + break; } else { - uzol = uzol->nie; + printf("Nerozumiem\n"); + break; } } } -void uvolni_strom(Uzol *uzol) { - if (uzol == NULL) return; - uvolni_strom(uzol->ano); - uvolni_strom(uzol->nie); - free(uzol->text); - free(uzol); +void spusti_system(Uzol *strom) { + printf("Expert z bufetu to vie.\n"); + printf("Pozna %d druhov ovocia a zeleniny.\n", pocet_tovarov); + vypis_otazku(strom); + printf("Koniec\n"); } int main() { - Uzol *koren = nacitaj_strom(); - - if (!koren) { - printf("Chyba: Nepodarilo sa načítať bázu pravidiel.\n"); + Uzol *strom = nacitaj_strom(); + if (strom == NULL) { + printf("Chyba: Nepodarilo sa otvorit subor s pravidlami.\n"); return 1; } - - printf("Expert z bufetu to vie.\nPozna %d druhov ovocia a zeleniny.\n", pocet_tovarov); - printf("Odpovedajte 'a' pre prvu moznost alebo 'n' pre druhu moznost.\n"); - - spusti_system(koren); - - uvolni_strom(koren); + spusti_system(strom); return 0; }