
//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;
    printf("enter expression:");
    fgets(in,sizeof(in),stdin);
    for(i=0;i<=strlen(in);i++){
        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;
    }
}
