Pagini recente » Cod sursa (job #1625938) | Cod sursa (job #620346) | Cod sursa (job #1801178) | Cod sursa (job #149562) | Cod sursa (job #2791585)
#include <bits/stdc++.h>
using namespace std;
#define filei "evaluare.in"
#define fileo "evaluare.out"
ifstream in(filei);
ofstream out(fileo);
#define NMAX 100004
char str[NMAX];
int cnt;
#define MAXN 100001
int adun();
int factor() {
int x = 0;
if( str[cnt] == '(' ) {
cnt++;
x = adun();
cnt++;
}
else {
while( str[cnt] >= '0' && str[cnt] <= '9' )
x = x * 10 + str[cnt++] - '0';
}
return x;
}
int inmult() {
int prod;
prod = factor();
while( str[cnt] == '*' || str[cnt] == '/' ) {
if( str[cnt++] == '*' )
prod *= factor();
else
prod /= factor();
}
return prod;
}
int adun() {
int sum;
sum = inmult();
while( str[cnt] == '+' || str[cnt] == '-' ) {
if( str[cnt++] == '+' )
sum += inmult();
else
sum -= inmult();
}
return sum;
}
int main() {
in.getline(str, NMAX - 1);
out << adun();
return 0;
}