Update a1/program.c
This commit is contained in:
		
							parent
							
								
									e88adeb6e1
								
							
						
					
					
						commit
						d54ea6c6c8
					
				
							
								
								
									
										13
									
								
								a1/program.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								a1/program.c
									
									
									
									
									
								
							| @ -12,6 +12,14 @@ int isMatching(char opening, char closing) { | ||||
|            (opening == '<' && closing == '>'); | ||||
| } | ||||
| 
 | ||||
| // Function to get the expected closing bracket for a given opening bracket
 | ||||
| char getExpectedClosingBracket(char opening) { | ||||
|     return (opening == '{') ? '}' : | ||||
|            (opening == '[') ? ']' : | ||||
|            (opening == '(') ? ')' : | ||||
|            (opening == '<') ? '>' : '\0'; | ||||
| } | ||||
| 
 | ||||
| int main() { | ||||
|     char input[MAX_LENGTH + 1]; | ||||
|     char stack[MAX_LENGTH]; | ||||
| @ -54,8 +62,7 @@ int main() { | ||||
|             if (!isMatching(stack[top--], current)) { | ||||
|                 printf("Read: %s\n", input); | ||||
|                 printf("Crossed bracket %c in %d, expected %c.\n", current, position,  | ||||
|                        (current == '}') ? '{' : (current == ']') ? '[' :  | ||||
|                        (current == ')') ? '(' : '<'); | ||||
|                        getExpectedClosingBracket(stack[top + 1])); | ||||
|                 return 0; | ||||
|             } | ||||
|         } | ||||
| @ -64,7 +71,7 @@ int main() { | ||||
|     // If there are unmatched opening brackets left in the stack
 | ||||
|     if (top != -1) { | ||||
|         printf("Read: %s\n", input); | ||||
|         printf("Unexpected end of input, expected closing bracket for %c.\n", stack[top]); | ||||
|         printf("Missing closing brackets: %c\n", getExpectedClosingBracket(stack[top])); | ||||
|         return 0; | ||||
|     } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user