This commit is contained in:
Weber 2024-11-14 17:15:33 +00:00
parent 3cc58789a3
commit 6e432d53ad

View File

@ -34,51 +34,52 @@ Uzol* nacitaj_strom() {
return uzol; return uzol;
} }
void spusti_system(Uzol *uzol) { void vypis_otazku(Uzol *uzol) {
while (uzol != NULL) { if (uzol == NULL) {
if (uzol->ano == NULL && uzol->nie == NULL) { return;
printf("*%s\nKoniec\n", uzol->text); }
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; printf("Odpovedajte 'a' pre prvu moznost alebo 'n' pre druhu moznost.\n");
if (scanf(" %c", &odpoved) != 1 || (odpoved != 'a' && odpoved != 'n')) {
printf("Nerozumiem\n");
return;
}
char odpoved;
while (1) {
odpoved = getchar();
getchar(); // prečítanie nového riadku po odpovedi
if (odpoved == 'a') { 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 { } else {
uzol = uzol->nie; printf("Nerozumiem\n");
break;
} }
} }
} }
void uvolni_strom(Uzol *uzol) { void spusti_system(Uzol *strom) {
if (uzol == NULL) return; printf("Expert z bufetu to vie.\n");
uvolni_strom(uzol->ano); printf("Pozna %d druhov ovocia a zeleniny.\n", pocet_tovarov);
uvolni_strom(uzol->nie); vypis_otazku(strom);
free(uzol->text); printf("Koniec\n");
free(uzol);
} }
int main() { int main() {
Uzol *koren = nacitaj_strom(); Uzol *strom = nacitaj_strom();
if (strom == NULL) {
if (!koren) { printf("Chyba: Nepodarilo sa otvorit subor s pravidlami.\n");
printf("Chyba: Nepodarilo sa načítať bázu pravidiel.\n");
return 1; return 1;
} }
spusti_system(strom);
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);
return 0; return 0;
} }