Pagini recente » Cod sursa (job #1606349) | Cod sursa (job #2780822) | Cod sursa (job #2702196) | Cod sursa (job #1922854) | Cod sursa (job #1376565)
#include <cstdio>
#define LMAX 100005
using namespace std;
int poz;
char S[LMAX];
int eval();
int produs();
inline int paranteza()
{ int val=0;
if (S[poz]=='(')
poz++,
val=eval(),
poz++;
else
while (S[poz]>='0' && S[poz]<='9')
val=val*10+S[poz++]-'0';
return val;
}
inline int produs()
{
int val=paranteza();
while (S[poz]=='*' || S[poz]=='/')
if (S[poz++]=='*')val*=paranteza();
else val/=paranteza();
return val;
}
inline int eval()
{
int val=produs();
while (S[poz]=='+' || S[poz]=='-')
if (S[poz++]=='+')val+=produs();
else val-=produs();
return val;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",S);
printf("%d",eval());
fclose(stdin);
fclose(stdout);
}