cant fix the logical error pls helpCode:#include<stdio.h> #include<ctype.h> #include<stdlib.h> #define max 100 int stackpoint=0; int stackbuff[max]; void push(int a); int pop(); char getop(char infix[max]); int precedance(char l); void intopostfix(char infix[max],float postfix[max]); void main() { int i=0; float postfix[max]; char infix[max]; intopostfix(infix,postfix); printf("\n POSTFIX NOTATION IS\n"); while(postfix[i]!='#') {if(postfix[i]!='('); printf("%f",postfix[i++]);i++;} } void intopostfix(char infix[max],float postfix[max]) { char l; int k=0,j; float operand; push('#'); while((l=getop(infix))!=EOF) { if(l!='#'&&l!='e') { switch(l) { case 'o': operand=atof(infix); postfix[k++]=operand; break; case '(': case '^': case '*': case'/': case'%': case '+': case '-': if((j=precedance(l)>=0)) push(l); while(j=precedance(l)<0) postfix[k++]=pop(); break; case ')': break; default : printf("INVALID STATEMENT%c\n",l); break; } } else if(l=='#') { postfix[k]='#'; return; } else if(l=='e'); } } char getop(char infix[max]) { int i=0; char c; c=getchar(); if(c=='('||c=='^'||c=='*'||c=='/'||c=='+'||c=='+'||c=='#') return c; if(isdigit(c)||c=='.') { while(isdigit(infix[i++]=c)) {c=getchar();} if(c=='.') {infix[i++]=c; while(isdigit(infix[i++]=c=getchar())); } infix[i]='\0'; return 'o'; } else return 'e'; } void push(int oprater) { if(stackpoint<max) { stackbuff[stackpoint++]=oprater; } else { printf("STACK LIMIT EXCEED\n"); } } int pop() { int temp; if(stackpoint>0) return stackbuff[--stackpoint]; else { printf("STACK EMPTY\n"); return 0.0; } } int precedance(char l) { int precedbuff[3][8]={{'(','^','*','/','%','+','-','#'}, {5,4,3,3,3,2,2,0}, {1,4,3,3,3,2,2,0}},j,val1,val2; for(j=0;j<8;j++) { if(l==precedbuff[0][j]) val1=precedbuff[1][j]; if(stackbuff[stackpoint]==precedbuff[0][j]) val2=precedbuff[2][j]; } return val1-val2; }