Pagini recente » Cod sursa (job #623487) | Cod sursa (job #2226106) | Cod sursa (job #1327650)
#include<cstdio>
char c[100002];
int i;
int evalexpr();
int t();
int nr();
int evalexpr()
{
int rasp=t();
while(c[i]=='+' || c[i]=='-')
{
if (c[i]=='+')
{
++i;
rasp+=t();
}
if (c[i]=='-')
{
++i;
rasp-=t();
}
}
return rasp;
}
int t()
{
int rasp=nr();
while(c[i]=='*' || c[i]=='/')
{
if (c[i]=='*')
{
++i;
rasp*=nr();
}
if (c[i]=='/')
{
++i;
rasp/=nr();
}
}
return rasp;
}
int nr()
{
int rasp=0;
if (c[i]=='(')
{
++i;
rasp=evalexpr();
++i;
}
else
{
while(c[i]<='9' && c[i]>='0')
{
rasp=rasp*10+c[i]-'0';
++i;
}
}
return rasp;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(c);
printf("%d\n",evalexpr());
return 0;
}