Pagini recente » Cod sursa (job #265854) | Cod sursa (job #1498699) | Cod sursa (job #2948409) | Cod sursa (job #2693745) | Cod sursa (job #194413)
Cod sursa(job #194413)
#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();
if (p < N && s[p] == '+')
++p, ret += Expresie();
if (p < N && s[p] == '-')
++p, ret -= Expresie();
return ret;
}
int main() {
freopen(FILEIN, "r", stdin);
freopen(FILEOUT, "w", stdout);
scanf("%s", s);
N = strlen(s);
printf("%d\n", Expresie());
}