#include <stdio.h>
#include "pilha.h"
main(int argc, char * argv[]) {
pilha p; int i=0; double x1,x2 ;
if (argc < 2) {
printf ("Erro: o comando polcalc
precisa de um parametro.\n");
return ;
}
nova(&p) ;
while ((c=argv[1][i]) != '\0')
{
if (c == '+') {
x2 = topo (&p);
retira (&p);
x1 = topo (&p);
retira (&p);
sobrepoe(&p,x1+x2);
}
else if (c == '-') {
x2 = topo (&p);
retira (&p);
x1 = topo (&p);
retira (&p);
sobrepoe(&p,x1-x2);
}
else if (c == '*') {
x2 = topo (&p);
retira (&p);
x1 = topo (&p);
retira (&p);
sobrepoe(&p,x1*x2);
}
else if (c == '/') {
x2 = topo (&p);
retira (&p);
x1 = topo (&p);
retira (&p);
sobrepoe(&p,x1/x2);
}
else if (c == '!') {
x1 = topo (&p);
retira (&p);
sobrepoe (&p,
-x1);
}
else sobrepoe (&p, c-'0');
i++;
}
printf ("%f\n", topo (&p));
}