Mis-Post? This is a java list, and that's a C based language

ρ Я д Ŧ έ e Қ ....Me ||0T ThaT BaDD*** wrote:
> i have written a program to convert infix expression to postfix
> expression.
> There are no compilation errors but on run-time it shows the message :
> "Program Termination". Please help me by making me know where the
> error lies, here is the program:
>
> /////////////
> #include<stdio.h>
> #include<conio.h>
> #include<string.h>
>
> #define MAX 30
> int topS=-1,topE=-1;
> char stack1[MAX],stack2[MAX];
> char pop()
> {
> if(topS==-1)
> return '#';
> return stack1[topS--];
> }
>
> void pushS(char s)
> {
> stack1[++topS]=s;
> }
> void pushE(char s)
> {
> stack2[++topE]=s;
> }
>
> void show()
> {
>  int j;
>  for(j=0;j<=topE;j++)
>  printf("%c",stack2[j]);
> }
> void call()
> {
> while(stack1[topS]!='(')
> pushE(pop());
> pop();
> }
>
> void main()
> {
> clrscr();
> char pe[MAX],len,i=0;
> printf("\n Enter the Infix Expression");
> gets(pe);
> len=strlen(pe);
> while(i<len)
> {
>       if(pe[i]=='(')
>       pushS(pe[i]);
>       else if((pe[i]>=65 && pe[i]<=90) || (pe[i]>=97 && pe[i]<=122))
>       pushE(pe[i]);
>       else if(pe[i]==')')
>       call();
>       else
>       {
>        if(pe[i]=='+')
>        {
> while(stack1[topS]!='(')
> pushE(pop());
> pushS('+');
>        }
>        else if(pe[i]=='-')
>        {
> while(stack1[topS]!='(')
> pushE(pop());
> pushS('-');
>        }
>        else if(pe[i]=='^')
>        {
> pushS('^');
>        }
>        else if(pe[i]=='*')
>        {
> if((stack1[topS]=='+') || (stack1[topS]=='-') || (stack1[topS]=='('))
> {
>  pushS('*');
> }
> else if((stack1[topS]=='^') || (stack1[topS]=='/'))
> {
>  while((stack1[topS]!='+') || (stack1[topS]!='-') || (stack1[topS]!='('))
>  pushE(pop());
>  pushS('*');
> }
>        }
>        else if(pe[i]=='/')
>        {
> if((stack1[topS]=='+') || (stack1[topS]=='-') || (stack1[topS]=='('))
> {
>  pushS('/');
> }
> else if((stack1[topS]=='^') || (stack1[topS]=='*'))
> {
>  while((stack1[topS]!='+') || (stack1[topS]!='-') || (stack1[topS]!='('))
>  pushE(pop());
>  pushS('/');
>
> }
>        }
>      }
>   i++;
> }
> printf("\n The Conversion has been done");
> printf("\n The resulting Postfix Expression is:\n");
> show();
> getch();
> }
>
> /////////////
> >



--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/javaprogrammingwithpassion?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to