refresh
This commit is contained in:
		
							parent
							
								
									08d69395da
								
							
						
					
					
						commit
						2ab314489e
					
				
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										63
									
								
								a1/program.c
									
									
									
									
									
								
							
							
						
						
									
										63
									
								
								a1/program.c
									
									
									
									
									
								
							@ -7,42 +7,85 @@ int proverka(char otv, char zatv) {
 | 
				
			|||||||
    if (otv == '(' && zatv == ')') {
 | 
					    if (otv == '(' && zatv == ')') {
 | 
				
			||||||
        return 1;
 | 
					        return 1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (otv == '{' && zatv == '}') {
 | 
					    else if (otv == '{' && zatv == '}') {
 | 
				
			||||||
        return 1;
 | 
					        return 1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (otv == '[' && zatv == ']') {
 | 
					    else if (otv == '[' && zatv == ']') {
 | 
				
			||||||
        return 1;
 | 
					        return 1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (otv == '<' && zatv == '>') {
 | 
					    else if (otv == '<' && zatv == '>') {
 | 
				
			||||||
        return 1;
 | 
					        return 1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return 0;
 | 
					    else {
 | 
				
			||||||
 | 
					        return 0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int main() {
 | 
					int main() {
 | 
				
			||||||
    char riadok[MAX_SIZE];
 | 
					    char riadok[MAX_SIZE];
 | 
				
			||||||
    char zasobnik[MAX_SIZE];
 | 
					    char zasobnik[MAX_SIZE];
 | 
				
			||||||
    int vrch = -1;
 | 
					    int vrch = -1;
 | 
				
			||||||
    int i;
 | 
					 | 
				
			||||||
    int chyba = 0;
 | 
					    int chyba = 0;
 | 
				
			||||||
    char znak;
 | 
					    char znak;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (fgets(riadok, MAX_SIZE, stdin)==NULL) {
 | 
					    if (fgets(riadok, MAX_SIZE, stdin) == NULL) {
 | 
				
			||||||
        printf("Input Error!\n");
 | 
					        printf("Input Error!\n");
 | 
				
			||||||
        return 1;
 | 
					        return 1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    riadok[strcspn(riadok, "\n")]=='0';
 | 
					    riadok[strcspn(riadok, "\n")] = '\0';
 | 
				
			||||||
 | 
					 | 
				
			||||||
    printf("Read: %s\n", riadok);
 | 
					    printf("Read: %s\n", riadok);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    int dlzka = strlen(riadok);
 | 
					    int dlzka = strlen(riadok);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (int i = 0; i < dlzka; i++) {
 | 
					    for (int i = 0; i < dlzka; i++) {
 | 
				
			||||||
        znak = riadok[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;
 | 
					    return 0;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user