From 4fde67b65b31568840f05e1b544018b663514be7 Mon Sep 17 00:00:00 2001 From: Yurii Chechur Date: Thu, 24 Oct 2024 20:43:13 +0000 Subject: [PATCH] Update a1/program.c --- a1/program.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/a1/program.c b/a1/program.c index ebaa913..bb417ff 100644 --- a/a1/program.c +++ b/a1/program.c @@ -29,7 +29,6 @@ int main() { char stack[100]; int top = -1; - // printf(""); fgets(input, 101, stdin); printf("Read: %s", input); @@ -46,24 +45,24 @@ int main() { } } else if (isClosing(current)) { if (top == -1) { - printf("Unexpected closing bracket %c in %d\n", current, i); + printf("Unexpected closing bracket %c at position %d\n", current, i); return 0; } if (!isMatching(stack[top], current)) { - printf("Crossed bracket '%c' in %d , expected \n", current, i); - (stack[top] == '{') ? '}' : - (stack[top] == '[') ? ']' : - (stack[top] == '(') ? ')' : '>', - current, i; + char expected = expectedClosing(stack[top]); + printf("Crossed bracket '%c' at position %d, expected '%c'\n", current, i, expected); return 0; } top--; } } - if (top != -1) { - char expected = expectedClosing(stack[top]); - printf("Missing closing brackets: %c\n", expected); + if (top != -1) { + printf("Missing closing brackets: "); + while (top != -1) { + printf("%c", expectedClosing(stack[top--])); + } + printf("\n"); return 0; }