From 2ab314489ecd187d414c373c4499eaa5e64e952a Mon Sep 17 00:00:00 2001 From: ov075wu Date: Tue, 21 Oct 2025 23:58:45 +0200 Subject: [PATCH] refresh --- a1/output/program.exe | Bin 58798 -> 60712 bytes a1/program.c | 69 ++++++++++++++++++++++++++++++++++-------- 2 files changed, 56 insertions(+), 13 deletions(-) diff --git a/a1/output/program.exe b/a1/output/program.exe index 693458dd362d632cafb107d16f40ce7aa5508440..277cc632664ed13bd2a7a7d4529cf4206f1443bf 100644 GIT binary patch delta 8737 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 jYXJ55k!`k(S6&RZ89zJ4Y=8YcTVcz-Uc~6') { + else if (otv == '<' && zatv == '>') { return 1; } - return 0; + else { + return 0; + } } int main() { char riadok[MAX_SIZE]; char zasobnik[MAX_SIZE]; int vrch = -1; - int i; int chyba = 0; char znak; - if (fgets(riadok, MAX_SIZE, stdin)==NULL) { + if (fgets(riadok, MAX_SIZE, stdin) == NULL) { printf("Input Error!\n"); return 1; } - riadok[strcspn(riadok, "\n")]=='0'; - + riadok[strcspn(riadok, "\n")] = '\0'; printf("Read: %s\n", riadok); int dlzka = strlen(riadok); for (int i = 0; i < dlzka; i++) { znak = riadok[i]; - zasobnik[++vrch] = znak; - } else if (znak == ')' || znak == ']' || znak == '}' || znak == '>') { - + + if (znak == '(' || znak == '[' || znak == '{' || znak == '<') { + zasobnik[++vrch] = znak; + } + else if (znak == ')' || znak == ']' || znak == '}' || znak == '>') { + if (vrch < 0) { + printf("Unexpected closing bracket %c in %d\n", znak, i + 1); + chyba = 1; + break; + } + + if (!proverka(zasobnik[vrch], znak)) { + char ocakavany; + switch (zasobnik[vrch]) { + case '(': + ocakavany = ')'; + break; + case '[': + ocakavany = ']'; + break; + case '{': + ocakavany = '}'; + break; + case '<': + ocakavany = '>'; + break; + default: + ocakavany = '?'; + break; + } + printf("Crossed bracket %c in %d, expected %c\n", znak, i + 1, ocakavany); + chyba = 1; + break; + } + + vrch--; + } } - + + if (!chyba && vrch >= 0) { + printf("Unclosed bracket %c at the end\n", zasobnik[vrch]); + chyba = 1; + } + + if (!chyba) { + printf("All brackets OK\n"); + } + return 0; -} \ No newline at end of file +}