Update a1/program.c

This commit is contained in:
Marat Izmailov 2024-10-24 10:34:46 +00:00
parent f06eacce32
commit 43aae31d16

View File

@ -22,6 +22,15 @@ char pop() {
return '\0'; // Если стек пустой
}
// Функция для получения соответствующей закрывающей скобки
char matchingCloseBracket(char open) {
if (open == '(') return ')';
if (open == '{') return '}';
if (open == '[') return ']';
if (open == '<') return '>';
return '\0';
}
// Функция для проверки соответствия скобок
int isMatchingPair(char open, char close) {
return (open == '(' && close == ')') ||
@ -45,7 +54,6 @@ 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
@ -53,7 +61,7 @@ int main() {
char lastOpen = pop();
if (!isMatchingPair(lastOpen, c)) {
printf("Crossed bracket %c in %d, expected %c\n", c, i + 1, lastOpen);
printf("Crossed bracket %c in %d, expected %c\n", c, i + 1, matchingCloseBracket(lastOpen));
return 0; // Ожидается код завершения 0
}
}
@ -61,7 +69,7 @@ int main() {
// Проверка на незакрытые скобки
if (top != -1) {
printf("Unclosed bracket %c\n", stack[top]);
printf("Missing closing brackets: %c\n", matchingCloseBracket(stack[top]));
return 0; // Ожидается код завершения 0
}