I tried to run this program. I don't get any errors. But it cannot return the 
output of this program. Help Me!?
What is the error of this program?

#include<stdio.h>

#define MAX 25

int stack[MAX],TOS=-1;

int precedance(char symbol)

{

int result;

switch(symbol)

{

case '(':

result=0;

break;

case '+':

case '-':

result=1;

break;

case '*':

case '/':

result=2;

break;

case '^':

result=3;

break;

}

return(result);

}

int isoperand(char symbol)

{

if((symbol>='a' && symbol<='z')||(symbol>='A' 
&& symbol<='Z')||(symbol>='0' && symbol<='9'))

{

return 1;

}

else

{

return 0;

}

}

int isoperator(char symbol)

{

int result=0;

switch(symbol)

{

case '+':

case '-':

case '*':

case '/':

case '^':

result=1;

break;

}

return(result);

}

int main()

{

char infix[MAX],postfix[MAX];

int inputpointer,outputpointer;

inputpointer=outputpointer=-1;

stack[++TOS]='(';

printf("\n enter the infix expression");

scanf("%s",&infix[MAX]);

while(infix[++inputpointer]!='\0')

{

if(isoperand(infix[inputpointer]))

{

postfix[++outputpointer]=infix[inputpo…

}

else if(isoperator(infix[inputpointer]))

{

while(precedance(infix[inputpointer])<…

{

postfix[++outputpointer]=stack[TOS--];

}

stack[++TOS]=infix[inputpointer];

}

else if(infix[inputpointer]== '(' )

{

stack[++TOS]='(';

}

else if(infix[inputpointer]==')')

{

while(stack[TOS]!='(')

{

postfix[++outputpointer]=stack[TOS--];

}

TOS--;

}

else

{

printf("invalid symbol");

}

}

while(stack[TOS]!='(')

{

postfix[++outputpointer]=stack[TOS--];

}

postfix[++outputpointer]='\0';

printf("\n the postfix expression is %s",postfix);

return 0;

}
_______________________________________________
ILUGC Mailing List:
http://www.ae.iitm.ac.in/mailman/listinfo/ilugc

Reply via email to