Pagini recente » Cod sursa (job #1877323) | Cod sursa (job #72555) | Cod sursa (job #664251) | Cod sursa (job #1204296) | Cod sursa (job #2047037)
#include<fstream>
using namespace std;
ifstream in("evaluare.in");
ofstream out("evaluare.out");
int i;
char c[100001];
int expresie(void), termen(void),factor(void);
int expresie(void) {
int r = termen();
while (c[i] == '+' || c[i] == '-' ) {
if (c[i] =='+') {
i++;
r += termen();
}
else{
i ++;
r-=termen();
}
}
return r;
}
int termen(void) {
int r = factor();
while (c[i] == '*' || c[i] == '/') {
if (c[i] == '*') {
i ++;
r *= factor();
}
else{
i ++;
r /= factor();
}
}
return r;
}
int factor(void) {
int r;
if (c[i] =='(') {
i ++;
r = expresie();
i ++;
}
else{
r = 0;
while (c[i] >= '0' && c[i] <= '9') {
r = r*10 + c[i] - 48;
i ++;
}
}
return r;
}
int main(void) {
in >> c;
out << expresie();
return 0;
}