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;
}
void spusti_system(Uzol *uzol) {
while (uzol != NULL) {
void vypis_otazku(Uzol *uzol) {
if (uzol == NULL) {
return;
}
printf("%s\n", uzol->text);
if (uzol->ano == NULL && uzol->nie == NULL) {
printf("*%s\nKoniec\n", uzol->text);
return;
}
printf("Odpovedajte 'a' pre prvu moznost alebo 'n' pre druhu moznost.\n");
printf("%s\n", uzol->text);
char odpoved;
if (scanf(" %c", &odpoved) != 1 || (odpoved != 'a' && odpoved != 'n')) {
printf("Nerozumiem\n");
return;
}
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;
}