Pagini recente » Cod sursa (job #310035) | Cod sursa (job #863353) | Cod sursa (job #710875) | Cod sursa (job #1724693) | Cod sursa (job #1907166)
#include <cstdio>
#include <cstring>
using namespace std;
char v[100010],p;
int exp();
int term();
int fact();
int exp()
{
int x;
x=term();
while(v[p]!=')')
if(v[p]=='+')
p++,x+=term();
else p++,x-=term();
return x;
}
int term()
{
int x;
x=fact();
while(v[p]=='*'||v[p]=='/')
if(v[p]=='*')
p++,x*=fact();
else p++,x/=fact();
return x;
}
int fact()
{
int x;
if(v[p]=='(')
p++,x=exp(),p++;
else
{
x=0;
while(v[p]<='9'&&v[p]>='0')
x=x*10+v[p]-'0',p++;
}
return x;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
int j=1;
while(scanf("%c",&v[j])!=-1)
j++;
v[0]='(';
int l=strlen(v);
v[--l]=')',v[++l]=')';
printf("%d",exp());
return 0;
}