refresh
This commit is contained in:
parent
08d69395da
commit
2ab314489e
Binary file not shown.
69
a1/program.c
69
a1/program.c
@ -7,43 +7,86 @@ int proverka(char otv, char zatv) {
|
||||
if (otv == '(' && zatv == ')') {
|
||||
return 1;
|
||||
}
|
||||
if (otv == '{' && zatv == '}') {
|
||||
else if (otv == '{' && zatv == '}') {
|
||||
return 1;
|
||||
}
|
||||
if (otv == '[' && zatv == ']') {
|
||||
else if (otv == '[' && zatv == ']') {
|
||||
return 1;
|
||||
}
|
||||
if (otv == '<' && zatv == '>') {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user