rendered paste body#include <iostream.h>
#include <stdio.h>
#include "stack.cpp"
#include <string.h>
#define MAX 7
int elevar(int x,int y){ //funcion que eleva x a y
int u;
for(u=0;u<y;u++){
x*=x;
}
return x;
}
int main(){
Stack stk;
char op[30];
int i=0,o,n,nums,a[MAX],b,d,c,result,z,isnum;
cout << "ingrese la operacin: ";
cout << endl;
gets(op);
n = strlen(op);
if(n!=0){
for(z=0;z<n;z++){
isnum=0;
while((op[i] != 32) && (op[i] > 47) && (op[i] < 58) && (op[i] != 0))
{
nums=nums+1;
a[nums-1] = op[i];
isnum=1;
i++;
}
if(isnum = 1){
for(o=0;o<nums;o++){
c+=elevar(10,nums-o)*a[o];
}
stk.push(c);
}
switch(op[i]){
case '/' : {
b = stk.top();
stk.pop();
d = stk.top();
stk.pop();
result = d/b;
stk.push(result);
break;
}
case '%' : {
b = stk.top();
stk.pop();
d = stk.top();
stk.pop();
result = d%b;
stk.push(result);
break;
}
case '+' : {
b = stk.top();
stk.pop();
d = stk.top();
stk.pop();
result = d+b;
stk.push(result);
break;
}
case '-' : {
b = stk.top();
stk.pop();
d = stk.top();
stk.pop();
result = d-b;
stk.push(result);
break;
}
case '*' : {
b = stk.top();
stk.pop();
d = stk.top();
stk.pop();
result = d*b;
stk.push(result);
break;
}
default : { i++;
break;
}
}
}
}
else {
cout << "usted no ha ingresado una operacin" << endl;
}
if(!stk.empty())
{
cout << "el resultado de la operacin es: " << stk.top() << endl;
}
return 0;
}