ak
This commit is contained in:
parent
a2310e4d2d
commit
01620f4b61
10
a2/program.c
10
a2/program.c
@ -68,16 +68,16 @@ int main(){
|
|||||||
printf("%s", line);
|
printf("%s", line);
|
||||||
|
|
||||||
int l = strlen(line);
|
int l = strlen(line);
|
||||||
int i, j = 0;
|
int i, j = -1;
|
||||||
char *a = calloc(l, sizeof(char));
|
char *a = calloc(l, sizeof(char));
|
||||||
char *b = calloc(l, sizeof(char));
|
char *b = calloc(l, sizeof(char));
|
||||||
|
|
||||||
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]);
|
||||||
|
j++;
|
||||||
a[j] = gettop();
|
a[j] = gettop();
|
||||||
b[j] = right_pair(a[j]);
|
b[j] = right_pair(a[j]);
|
||||||
j++;
|
|
||||||
}
|
}
|
||||||
if(line[i] == '}' || line[i] == ')' || line[i] == ']' || line[i] == '>'){
|
if(line[i] == '}' || line[i] == ')' || line[i] == ']' || line[i] == '>'){
|
||||||
if(s.size == -1){
|
if(s.size == -1){
|
||||||
@ -85,8 +85,8 @@ int main(){
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
else if(!find_pair(gettop(), line[i])){
|
else if(!find_pair(gettop(), line[i])){
|
||||||
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[j]);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
@ -99,7 +99,7 @@ int main(){
|
|||||||
int h;
|
int h;
|
||||||
while(begin < end){
|
while(begin < end){
|
||||||
h = b[begin];
|
h = b[begin];
|
||||||
b[begin] = b[--end];
|
b[begin++] = b[--end];
|
||||||
b[end] = h;
|
b[end] = h;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user