C语言版:
double PrePolish()
{
char str[10];
double f1,f2;
scanf("%s",str);
switch(str[0])
{
case'+':{f1=PrePolish();f2=PrePolish();return f1+f2;}
case'-':{f1=PrePolish();f2=PrePolish();return f1-f2;}
case'*':{f1=PrePolish();f2=PrePolish();return f1*f2;}
case'/':{f1=PrePolish();f2=PrePolish();return f1/f2;}
default: return atof(str);
}
}