Pagini recente » Cod sursa (job #1274635) | Cod sursa (job #2492775) | Cod sursa (job #717168) | Cod sursa (job #1646257) | Cod sursa (job #1624244)
#include <fstream>
using namespace std;
int i;
char s [100003];
int expresie();
int termen () {
int rez=0;
if (s[i] == '(') {
i++;
rez = expresie();
i++;
}
else
while (s[i] >= '0' and s[i] <= '9') {
rez = rez*10 + s[i]-'0';
i++;
}
return rez;
}
int factor () {
int rez = termen();
while (s[i] == '*' or s[i] == '/')
if (s[i] == '*') {
i++; rez *= termen();
}
else {
i++; rez /= termen();
}
return rez;
}
int expresie () {
int rez = factor();
while (s[i] == '+' or s[i] == '-')
if(s[i] == '+') {
i++; rez += factor();
}
else {
i++; rez -= factor();
}
return rez;
}
int main() {
ifstream fi("evaluare.in");
ofstream fo("evaluare.out");
fi >> s;
fo << expresie() << '\n';
return 0;
}