Update a1/program.c
This commit is contained in:
		
							parent
							
								
									46666f11bc
								
							
						
					
					
						commit
						e118e96953
					
				
							
								
								
									
										17
									
								
								a1/program.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								a1/program.c
									
									
									
									
									
								
							| @ -48,22 +48,27 @@ int main() { | ||||
| 
 | ||||
|     printf("Read: %s\n", code); | ||||
| 
 | ||||
|     // Дополнительный массив для хранения индексов открывающих скобок
 | ||||
|     int indexStack[MAX_LEN]; | ||||
|     int indexTop = -1; | ||||
| 
 | ||||
|     for (int i = 0; i < strlen(code); i++) { | ||||
|         char c = code[i]; | ||||
| 
 | ||||
|         if (c == '(' || c == '{' || c == '[' || c == '<') { | ||||
|             push(c); | ||||
|             indexStack[++indexTop] = i; // Сохраняем индекс открывающей скобки
 | ||||
|         } else if (c == ')' || c == '}' || c == ']' || c == '>') { | ||||
|             if (top == -1) { | ||||
|                 printf("Unexpected closing bracket %c in %d\n", c, i); | ||||
|                 return 0;  // Ожидается код завершения 0
 | ||||
|                 return 1;  // Возвращаем 1 при ошибке
 | ||||
|             } | ||||
| 
 | ||||
|             char lastOpen = pop(); | ||||
|             int lastIndex = indexStack[indexTop--]; // Извлекаем индекс соответствующей открывающей скобки
 | ||||
|             if (!isMatchingPair(lastOpen, c)) { | ||||
|                 // Используем i для вывода позиции, где найдена ошибка
 | ||||
|                 printf("Crossed bracket %c in %d, expected %c\n", c, i + 1, matchingCloseBracket(lastOpen)); | ||||
|                 return 0;  // Ожидается код завершения 0
 | ||||
|                 printf("Crossed bracket %c in %d, expected %c\n", c, lastIndex + 1, matchingCloseBracket(lastOpen)); | ||||
|                 return 1;  // Возвращаем 1 при ошибке
 | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| @ -75,9 +80,9 @@ int main() { | ||||
|             printf("%c", matchingCloseBracket(stack[i])); | ||||
|         } | ||||
|         printf("\n"); | ||||
|         return 0;  // Ожидается код завершения 0
 | ||||
|         return 1;  // Возвращаем 1 при ошибке
 | ||||
|     } | ||||
| 
 | ||||
|     printf("All brackets OK\n"); | ||||
|     return 0; | ||||
|     return 0;  // Возвращаем 0 при успехе
 | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user