All pastes #222176 Raw Edit

Something

public text v1 · immutable
#222176 ·published 2006-10-26 02:48 UTC
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];
		}

			
}