Pagini recente » Cod sursa (job #2336496) | Cod sursa (job #1849632) | Cod sursa (job #795790) | Cod sursa (job #1925200) | Cod sursa (job #858216)
Cod sursa(job #858216)
#include <cstdio>
#define maxn 100010
char buffer[maxn],*p=buffer;
int prod();
int numar();
int eval()
{
int r=prod();
while(*p=='+' || *p=='-')
{
if(*p=='+') p++,r+=prod();
else p++,r-=prod();
}
return r;
}
int prod()
{
int r=numar();
while(*p=='*'|| *p=='/')
{
if(*p=='*') p++,r*=numar();
else p++,r/=numar();
}
return r;
}
int numar()
{
int r=0;
if(*p=='(')
{
p++;
r=eval();
p++;
}
else
{
while(*p>='0' && *p<='9')
r=r*10+(*p-'0'),p++;
}
return r;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
fgets(buffer,maxn,stdin);
printf("%d",eval());
return 0;
}