diff --git a/a1/program.c b/a1/program.c index 0da835f..a191c07 100644 --- a/a1/program.c +++ b/a1/program.c @@ -45,17 +45,24 @@ int main() { if (c == '(' || c == '{' || c == '[' || c == '<') { push(c); } else if (c == ')' || c == '}' || c == ']' || c == '>') { + // Проверка на неожиданную закрывающую скобку без пары + if (top == -1) { + printf("Unexpected closing bracket %c in %d\n", c, i); + return 0; // Ожидается код завершения 0 + } + char lastOpen = pop(); if (!isMatchingPair(lastOpen, c)) { printf("Crossed bracket %c in %d, expected %c\n", c, i + 1, lastOpen); - return 1; + return 0; // Ожидается код завершения 0 } } } + // Проверка на незакрытые скобки if (top != -1) { printf("Unclosed bracket %c\n", stack[top]); - return 1; + return 0; // Ожидается код завершения 0 } printf("All brackets OK\n");