rendered paste body#include <iostream.h>
#include <stdlib.h>
#include "stack.cpp"
#include <string.h>
int main(void){
Stack stk;
char op[30],aux[30];
int i,largo,n=0;
float result,b,a,c;
cout << "ingresar operacin: ";
gets(op);
cout << endl;
largo = strlen(op);
for(i=0;i<largo;i++){
if((op[i] == 32) && ((op[i-1] >= 48) && (op[i-1] <= 57))){
b = atoi(aux);
stk.push(b);
aux = 0;
n=i;
}
else if(((op[i] == '*') or (op[i] == '/') or (op[i] == '+') or (op[i] == '-') or (op[i] == '%')) && ((op[i+1] == 32) or (op[i+1] == 59))){
switch(op[i]){
case '+' : {
a = stk.top();
stk.pop();
c = stk.top();
stk.pop();
result = c+a;
stk.push(result);
break;
}
case '-' : {
a = stk.top();
stk.pop();
c = stk.top();
stk.pop();
result = c-a;
stk.push(result);
break;
}
case '/' : {
a = stk.top();
stk.pop();
c = stk.top();
stk.pop();
result = c/a;
stk.push(result);
break;
}
case '*' : {
a = stk.top();
stk.pop();
c = stk.top();
stk.pop();
result = c*a;
stk.push(result);
break;
}
case '%' : {
a = stk.top();
stk.pop();
c = stk.top();
stk.pop();
result = (int)c%(int)a;
stk.push(result);
break;
}
}
}
else if (!stk.empty())
cout << "el resultado de la operacin es: " << stk.top() << endl;
else
aux[i-n] = op[i];
}
}