Pagini recente » Cod sursa (job #1270572) | Cod sursa (job #1298881) | Cod sursa (job #179534) | Cod sursa (job #1607215) | Cod sursa (job #1089993)
# include <cstdio>
# define MAXN 100013
using namespace std;
char *p,s[MAXN];
int eval();
int tm();
int factor();
int main()
{
freopen("evaluare.in", "r", stdin);
freopen("evaluare.out", "w", stdout);
gets(s);
p=s;
printf("%d\n", eval());
fclose(stdin);
fclose(stdout);
return 0;
}
int eval()
{
int r=tm();
while(*p=='+' || *p=='-')
{
if(*p=='+')
{
p++;
r+=tm();
}
else if(*p=='-')
{
p++;
r-=tm();
}
}
return r;
}
int tm()
{
int r=factor();
while(*p=='*' || *p=='/')
{
if(*p=='*')
{
p++;
r*=factor();
}
else if(*p=='/')
{
p++;
r/=factor();
}
}
return r;
}
int factor()
{
int r=0;
if(*p=='(')
{
p++;
r=eval();
p++;
}
while(*p<='9' && *p>='0')
{
r*=10;
r+=*p-'0';
p++;
}
return r;
}