a2
This commit is contained in:
parent
c8f47a8e0e
commit
c88cf9bbbb
21
a2/program.c
21
a2/program.c
@ -3,6 +3,7 @@
|
|||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
|
||||||
struct stack{
|
struct stack{
|
||||||
char data[100];
|
char data[100];
|
||||||
@ -67,8 +68,7 @@ char gettop(){
|
|||||||
|
|
||||||
int main(){
|
int main(){
|
||||||
|
|
||||||
//struct stack mystack;
|
|
||||||
//memset(&mystack, 0 , sizeof(struct stack));
|
|
||||||
char line[100];
|
char line[100];
|
||||||
s.size = -1;
|
s.size = -1;
|
||||||
|
|
||||||
@ -78,29 +78,34 @@ int main(){
|
|||||||
int l = strlen(line);
|
int l = strlen(line);
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
|
|
||||||
for(i = 0; i < l; i++){
|
for(i = 0; i < l; i++){
|
||||||
|
|
||||||
if(line[i] == '{' || line[i] == '(' || line[i] == '[' || line[i] == '<'){
|
if(line[i] == '{' || line[i] == '(' || line[i] == '[' || line[i] == '<'){
|
||||||
push(line[i]);
|
push(line[i]);
|
||||||
}
|
}
|
||||||
else if(line[i] == '}' || line[i] == ')' || line[i] == ']' || line[i] == '>'){
|
else if(line[i] == '}' || line[i] == ')' || line[i] == ']' || line[i] == '>'){
|
||||||
|
|
||||||
char a = gettop();
|
char a = gettop();
|
||||||
//printf("%c", a);
|
if(a != '(' || a != '{' || a != '<' || a != '['){
|
||||||
if(!find_pair(gettop(), line[i])){
|
printf("Unexpected closing brocket %c in %d\n", line[i], i);
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
else if(s.size == -1 && !find_pair(gettop(), line[i])){
|
||||||
char b = right_pair(a);
|
char b = right_pair(a);
|
||||||
printf("Crossed bracket %c in %d, expected %c\n", line[i], i, b);
|
printf("Crossed bracket %c in %d, expected %c\n", line[i], i, b);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
pop();
|
pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
if(s.size == -1){
|
||||||
printf("All brackest are OK\n");
|
printf("All brackest are OK\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user