Pagini recente » Cod sursa (job #2803842) | Cod sursa (job #2925504) | Cod sursa (job #1931122) | Cod sursa (job #1555637) | Cod sursa (job #1249334)
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n,i,j,nr;
char s[100005],*p=s;
long eval();
long term();
long fact();
long eval()
{
long val;
val=term();
while ((*p=='-')||(*p=='+'))
{
if (*p=='+') p++,val+=term();
else p++,val-=term();
}
return val;
}
long term()
{
long val;
val=fact();
while ((*p=='*')||(*p=='/'))
{
if (*p=='*') p++,val*=fact();
else p++,val/=fact();
}
return val;
}
long fact()
{
long val=0;
if (*p=='(')
{
++p;
val=eval();
p++;
}
else
{
while ((*p>='0')&&(*p<='9'))
val=val*10+(*p-'0'),p++;
}
return val;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(s+1); n=strlen(s+1); p++;
printf("%d",eval());
return 0;
}