arkadaşlar aşağıdaki gibi bir kod yazdım girilen infix ifadeyi postfixe çevirmek istiyorum biliyorum önemli yanlışlar var ama düzeltemiyorum yazabilecek olan varsa sevinirim teşekkürler 
#include <stdio.h>
#include <stdlib.h>
#define max 20
char str[max];
char stack [max];
int top= -1;
void push(char c){
top++;
stack[top]=c;
}
char pop(char d){
top++;
str[top]=d;
}
bool BuyukEsit (char a,char b ){
if(a=='*'||a='/')
return true;
else if(b=='-'||b==+)
return true;
else
return false;
}
void in_post( ){
int n,i;
printf("infix ifadeyi giriniz");
gets (str);
gets(str);
n=strlen(str);
printf("postfix gösterimi\n" );
for(i=0;i<max;i++){
if(str=='+'||str='-'||str=='/'||str=='*')
{
while(str.top!==-1)
{
if(str[top]=='(')
break;
else if
{
BuyukEsit(str[top],str);
pop(str[top]);
printf("%c",str[top]);
}
}
else
break;
}
push(str);
else if(str==')'){
char temp;
while (pop(str[temp]))
if(str[temp]=='(')
break;
printf("%c"str[temp]);
}
else if(str=='(')
{
push(str);
}
else
{
printf("%d",str);
}
}
}
}
int main(int argc, char *argv[]) {
return 0;
}

#include <stdio.h>
#include <stdlib.h>
#define max 20
char str[max];
char stack [max];
int top= -1;
void push(char c){
top++;
stack[top]=c;
}
char pop(char d){
top++;
str[top]=d;
}
bool BuyukEsit (char a,char b ){
if(a=='*'||a='/')
return true;
else if(b=='-'||b==+)
return true;
else
return false;
}
void in_post( ){
int n,i;
printf("infix ifadeyi giriniz");
gets (str);
gets(str);
n=strlen(str);
printf("postfix gösterimi\n" );
for(i=0;i<max;i++){
if(str=='+'||str='-'||str=='/'||str=='*')
{
while(str.top!==-1)
{
if(str[top]=='(')
break;
else if
{
BuyukEsit(str[top],str);
pop(str[top]);
printf("%c",str[top]);
}
}
else
break;
}
push(str);
else if(str==')'){
char temp;
while (pop(str[temp]))
if(str[temp]=='(')
break;
printf("%c"str[temp]);
}
else if(str=='(')
{
push(str);
}
else
{
printf("%d",str);
}
}
}
}
int main(int argc, char *argv[]) {
return 0;
}