Cod sursa(job #677345)

Utilizator gabrielvGabriel Vanca gabrielv Data 10 februarie 2012 00:50:12
Problema Evaluarea unei expresii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.45 kb
using namespace std;
#include<fstream>
#include<stack>
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
stack <int> S;
int main ()
{
    int i,a,b;
    char x[100];
    fin>>x;
    for(i=0;x[i];i++)
    {
        if(isdigit(x[i]))
        {
            S.push(atoi(x+i));
            while(x[i]!='.')
                i++;
        }
        else
            switch(x[i])
            {
            case '+':
                {
                    a=S.top();S.pop();
                    b=S.top();S.pop();
                    S.push(a+b);
                    break;
                }
            case '-':
                {
                    a=S.top();S.pop();
                    b=S.top();S.pop();
                    S.push(-a+b);
                    break;
                }
            case '*':
                {
                    a=S.top();S.pop();
                    b=S.top();S.pop();
                    S.push(a*b);
                    break;
                }           
            case '/':
                {
                    a=S.top();S.pop();
                    b=S.top();S.pop();
                    S.push(b/a);
                    break;
                }
            case '%':
                {
                    a=S.top();S.pop();
                    b=S.top();S.pop();
                    S.push(b%a);
                    break;
                }
            }
    }
    fout<<S.top();
}