Pagini recente » Cod sursa (job #1609855) | Cod sursa (job #1102643) | Cod sursa (job #1579764) | Cod sursa (job #587192) | Cod sursa (job #735485)
Cod sursa(job #735485)
#include<cstdio>
char expresie[100010],*p;
long long int eval(),termen(),factor();
long long int eval()
{
long long int r=termen();
while(*p=='+'||*p=='-')
{
switch(*p)
{
case '+': {p++; r+=termen(); break;}
case '-': {p++; r-=termen(); break;}
}
}
return r;
}
long long int termen()
{
long long int r=factor();
while(*p=='*'||*p=='/')
{
switch(*p)
{
case '*': {p++; r*=factor(); break;}
case '/': {p++; r/=factor(); break;}
}
}
return r;
}
long long int factor()
{
long long 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()
{
long long int rez;
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(expresie);
p=expresie;
rez=eval();
printf("%lld",rez);
return 0;
}