Pagini recente » Cod sursa (job #171838) | Cod sursa (job #194414)
Cod sursa(job #194414)
#include <cstdio>
#include <cstring>
const char FILEIN[] = "evaluare.in";
const char FILEOUT[] = "evaluare.out";
const int MAXN = 100005;
int N;
char s[MAXN];
int p;
int Expresie();
int Numar() {
int ret = 0;
if (s[p] == '(')
++p, ret = Expresie(), ++p;
else
while (p < N && (s[p] >= '0' && s[p] <= '9'))
ret = ret*10 + s[p++]-'0';
return ret;
}
int Factor() {
int ret = Numar();
while (p < N && (s[p] == '*' || s[p] == '/')) {
int op = s[p++] == '*';
int aux = Numar();
if (op) ret *= aux;
else ret /= aux;
}
return ret;
}
int Expresie() {
int ret = Factor();
while (p < N && (s[p] == '+' || s[p] == '-')) {
int op = s[p++] == '+';
int aux = Factor();
if (op) ret += aux;
else ret -= aux;
}
return ret;
}
int main() {
freopen(FILEIN, "r", stdin);
freopen(FILEOUT, "w", stdout);
scanf("%s", s);
N = strlen(s);
printf("%d\n", Expresie());
}