Pagini recente » Cod sursa (job #1872995) | preoni-2007/runda-finala/poze | Cod sursa (job #2533923) | Cod sursa (job #1324362) | Cod sursa (job #182060)
Cod sursa(job #182060)
#ifdef WIN32
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <stdio.h>
char e[100352];
int p;
int termen(), factor();
int evaluare()
{
int r = termen();
while (e[p] == '+' || e[p] == '-')
{
if (e[p] == '+')
{
p++;
r += termen();
}
else
{
p++;
r -= termen();
}
}
return r;
}
int termen()
{
int r = factor();
while (e[p] == '*' || e[p] == '/')
{
if (e[p] == '*')
{
p++;
r *= factor();
}
else
{
p++;
r /= factor();
}
}
return r;
}
int factor()
{
int r = 0;
if (e[p] == '(')
{
p++;
r = evaluare();
p++;
}
else
{
while ('0' <= e[p] && e[p] <= '9')
{
r = r * 10 + e[p] - '0';
p++;
}
}
return r;
}
int main()
{
freopen("evaluare.in", "rt", stdin);
freopen("evaluare.out", "wt", stdout);
scanf("%s", e);
printf("%d", evaluare());
return 0;
}