Pagini recente » Cod sursa (job #22316) | Cod sursa (job #362710) | Cod sursa (job #2873942) | Cod sursa (job #260994) | Cod sursa (job #2347922)
#include<cstdio>
char s[100001],*p=s,r[100001],o;
void S(int b)
{
char e[100];
int j;
if(b<0)
b=-b,r[o++]='-';
if(!b)
r[o++]=48;
for(j=0;b;b/=10,j++)
e[j]=b%10+48;
for(j--;j>=0;j--)
r[o++]=e[j];
}
int E(int l)
{
int x,y;
if(l==2)
if(*p=='(')
p++,x=E(0),p++;
else
for(x=0;*p>='0'&&*p<='9';p++)
x=x*10+*p-'0';
else
for(x=E(l+1);(!l&&(*p=='+'||*p=='-'))||(l&&(*p=='*'||*p=='/'));x=y)
if(!l)
if(*p=='+')
p++,y=x+E(l+1);
else
p++,y=x-E(l+1);
else if(*p=='*')
p++,y=x*E(l+1);
else
p++,y=x/E(l+1);
return x;
}
int main()
{
freopen("evaluare.in","r",stdin),freopen("evaluare.out","w",stdout),fread(s,1,100001,stdin),S(E(0)),fwrite(r,1,o,stdout);
}