Cod sursa(job #1097728)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 3 februarie 2014 21:33:06
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<fstream>
#include<string>
using namespace std;
int l;
string s;

int rezult();

int factor() {
    int f=0;
    if (s[l]=='(') { ++l; f=rezult(); ++l; }
     else 
         while (s[l]>='0'&&s[l]<='9') { f=f*10+int(s[l])-48; ++l; }
    return(f);
}

int termen() {
    int t=factor();
    while (s[l]=='*'||s[l]=='/') {
          if (s[l]=='*') { ++l; t*=factor(); }
             else { ++l; t/=factor(); }
           }
    return(t);
}

int rezult(){
    int v=termen();
    while (s[l]=='+'||s[l]=='-') {
          if (s[l]=='+') { ++l; v+=termen(); }
            else { ++l; v-=termen(); }
            }
    return(v);
} 

int main(void) {
    ifstream fin("evaluare.in");
    ofstream fout("evaluare.out");
    
    getline(fin,s);
    
    fout<<rezult();
  return(0);
}