Cod sursa(job #2876100)

Utilizator AncaGAncuta Gava AncaG Data 22 martie 2022 22:42:46
Problema Evaluarea unei expresii Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.12 kb
#include <iostream>
#include <string>
#include <stack>
	
#include <cstring>
#include <fstream>

using namespace std;

ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
 
int evalPostfixata(string exp)
{
    stack<int> stack;
    for (char c: exp)
    {
// daca este cifra
        if (c >= '0' && c <= '9') {
            stack.push(c - '0');
        }
// altfel daca este operand, 
//dar mai intai imi separ termenii eventual implcati in operatie
        else {
            int elem1 = stack.top();
            stack.pop();
 
            int elem2 = stack.top();
            stack.pop();
 
            if (c == '+') {
                stack.push(elem1 + elem2);
            }
            else if (c == '-') {
                stack.push(elem2 - elem1);
            }
            else if (c == '*') {
                stack.push(elem1 * elem2);
            }
            else if (c == '/') {
                stack.push(elem2 / elem1);
            }
        }
    }
 
    return stack.top();
}
 
int main()
{
    string exp;
    fin>>exp;
    fout<<evalPostfixata(exp);
    return 0;
}