递归实现逆波兰式:
#include <stdio.h>
#include <stdlib.h>
double f()
{
char a[10];
scanf("%s", a);
switch(a[0])
{
case '+' : return f()+f();
case '-' : return f()-f();
case '*' : return f()*f();
case '/' : return f()/f();
default : return atof(a);
}
}
int main()
{
// freopen("input.txt","r",stdin);
printf("%f", f());
return 0;
}
#include <stdio.h>
#include <stdlib.h>
void f()
{
char a[10];
scanf("%s", a);
switch(a[0])
{
case '+': {
printf("(");
f();
printf("+");
f();
printf(")");
break;
}
case '-': {
printf("(");
f();
printf("-");
f();
printf(")");
break;
}
case '*': {
f();
printf("*");
f();
break;
}
case '/': {
f();
printf("/");
f();
break;
}
default : printf("%.1f", atof(a));
}
}
int main()
{
// freopen("input.txt","r",stdin);
f();
// close(stdin);
return 0;
}