#include #define MAX 100 void serch_zatv(char vhod[MAX]) { char first[2] = "{}"; char second[2] = "[]"; char third[2] = "<>"; char fourth[2] = "()"; int idx = 0; int idt = 0; char find[50] = {0}; while (vhod[idx] != '\0') { if (vhod[idx] == first[0]) { find[idt] = first[1]; idt++; } else if (vhod[idx] == second[0]) { find[idt] = second[1]; idt++; } else if (vhod[idx] == third[0]) { find[idt] = third[1]; idt++; } else if (vhod[idx] == fourth[0]) { find[idt] = fourth[1]; idt++; } else { for (int i = 0; i < idt; i++) { if (vhod[idx] == find[i]) { find[i] = '.'; for (int r = i + 1; r < idt; r++) { if (find[r] != '.' && find[r] != '\0') { printf("Crossed bracket %c at position %d, expected %c\n", vhod[idx], idx, find[i]); return; } } break; } } } idx++; } for (int i = 0; i < idt; i++) { if (find[i] != '.' && find[i] != '\0') { printf("Unmatched bracket\n"); return; } } printf("Read: %s\nAll brackets OK\n", vhod); } int main() { char riadok[MAX]; scanf("%s", riadok); // Без амперсанда & serch_zatv(riadok); return 0; }