Cod sursa(job #2928144)

Utilizator dragos1102Dragos Vieru dragos1102 Data 22 octombrie 2022 11:40:46
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
using namespace std;
int expresie();
int termen();
int factor();
char s[100100];
int i;
ifstream fin ("evaluare.in");
ofstream fout("evaluare.out");
int expresie() {
int r=termen();
while (s[i]=='+'||s[i]=='-') {
    if (s[i]=='+') {
        i++;
        r=r+termen();
    }
    else {
        i++;
        r=r-termen();
    }
}
return r;
}
int termen() {
int r=factor();
while (s[i]=='*'||s[i] =='/') {
    if (s[i]=='*') {
        i++;
        r=r*factor();
    }
    else {
        i++;
        r=r/factor();
    }
}
return r;
}
int factor() {
int r=0;
if (s[i]=='(') {
    i++;
    r=expresie();
    i++;
}
else {
    r=0;
    while (s[i]>='0'&&s[i]<='9') {
        r=r*10+(s[i]-'0');
        i++;
    }
}
return r;
}
int main () {
fin>>s;
fout<<expresie();
return 0;
}