Pagini recente » Cod sursa (job #35897) | Cod sursa (job #2430345) | Cod sursa (job #381852) | Cod sursa (job #1119328) | Cod sursa (job #1082569)
#include<cstdio>
using namespace std;
char S[100001],*p=S;
int eval();
int f();
int number();
int eval()
{
int x=f();
while(*p=='+' or *p=='-')
{
if(*p=='+') ++p,x+=f();
else
if(*p=='-') ++p,x-=f();
}
return x;
}
int f()
{
int x=number();
while(*p=='/' or *p=='*')
{
if(*p=='*') ++p,x*=number();
else
if(*p=='/') ++p,x/=number();
}
return x;
}
int number()
{
int x=0;
if(*p=='(') ++p,x=eval(),++p;
else
while(*p>='0' && '9'>=*p)
x=x*10+(*p-'0'),++p;
return x;
}
int main()
{
freopen("evaluare.in","r",stdin);freopen("evaluare.out","w",stdout);
gets(S);
printf("%d",eval());
return 0;
}