//a program for infix to postfix
#include<stdio.h>
#include<string.h>
char in[30],stack[20],out[30];
int top=-1;
int pop(char a);
int output_push(char b);
int push(char c);
int precedence(char d);
int main(){
int i,k,l,j=0;
fgets(in
,sizeof(in
),stdin
); if(in[i]==(int)in[i]){
output_push(in[i]);}
if(in[i]!=(int)in[i]){
push(in[i]);
}
}
printf("the output is:%s",out
);
}
int push(char c){
if(top==-1){
stack[++top]=c;}
else{
if(precedence(c)>precedence(stack[top])){
stack[++top]=c;
}
while(precedence(c)<=precedence(stack[top])){
int j;
out[++j]=stack[top--];
}
}
}
int output_push(char b){
int j;
out[++j]=b;
}
int precedence(char d){
if(d=='+'||d=='-'){
return 1;
}
else if(d=='x'||d=='/'){
return 2;
}
}
Ci8vYSBwcm9ncmFtIGZvciBpbmZpeCB0byBwb3N0Zml4CiNpbmNsdWRlPHN0ZGlvLmg+CiNpbmNsdWRlPHN0cmluZy5oPgpjaGFyIGluWzMwXSxzdGFja1syMF0sb3V0WzMwXTsKaW50IHRvcD0tMTsKaW50IHBvcChjaGFyIGEpOwppbnQgb3V0cHV0X3B1c2goY2hhciBiKTsKaW50IHB1c2goY2hhciBjKTsKaW50IHByZWNlZGVuY2UoY2hhciBkKTsKaW50IG1haW4oKXsKICAgIGludCBpLGssbCxqPTA7CiAgICBwcmludGYoImVudGVyIGV4cHJlc3Npb246Iik7CiAgICBmZ2V0cyhpbixzaXplb2YoaW4pLHN0ZGluKTsKICAgIGZvcihpPTA7aTw9c3RybGVuKGluKTtpKyspewogICAgICAgIGlmKGluW2ldPT0oaW50KWluW2ldKXsKICAgICAgICAgICAgb3V0cHV0X3B1c2goaW5baV0pO30KICAgICAgICAgICAgaWYoaW5baV0hPShpbnQpaW5baV0pewogICAgICAgICAgICAgICAgcHVzaChpbltpXSk7CiAgICAgICAgICAgIH0KICAgIH0KICAgIHByaW50ZigidGhlIG91dHB1dCBpczolcyIsb3V0KTsKICAgIAp9CmludCBwdXNoKGNoYXIgYyl7CiAgICBpZih0b3A9PS0xKXsKICAgIHN0YWNrWysrdG9wXT1jO30KICAgIGVsc2V7CiAgICAgICAgaWYocHJlY2VkZW5jZShjKT5wcmVjZWRlbmNlKHN0YWNrW3RvcF0pKXsKICAgICAgICAgICAgc3RhY2tbKyt0b3BdPWM7CiAgICAgICAgfQogICAgICAgIHdoaWxlKHByZWNlZGVuY2UoYyk8PXByZWNlZGVuY2Uoc3RhY2tbdG9wXSkpewogICAgICAgICAgICBpbnQgajsKICAgICAgICAgICAgb3V0Wysral09c3RhY2tbdG9wLS1dOwogICAgICAgIH0KICAgIH0KfQppbnQgb3V0cHV0X3B1c2goY2hhciBiKXsKICAgIGludCBqOwogICAgb3V0Wysral09YjsKICAgIAp9CmludCBwcmVjZWRlbmNlKGNoYXIgZCl7CiAgICBpZihkPT0nKyd8fGQ9PSctJyl7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CiAgICBlbHNlIGlmKGQ9PSd4J3x8ZD09Jy8nKXsKICAgICAgICByZXR1cm4gMjsKICAgIH0KfQo=