Pagini recente » Cod sursa (job #579415) | Cod sursa (job #1459497) | Cod sursa (job #853323) | Cod sursa (job #1727373) | Cod sursa (job #960395)
Cod sursa(job #960395)
#include <cstdio>
using namespace std;
int suma(),produs(),para_nr();
char e[100010],*p;
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",e);
p=e;
printf("%d\n",suma());
return 0;
}
int suma()
{
int aux,val=produs();
while(*p=='+'||*p=='-')
{
if(*p=='+'){p++;aux=produs();val+=aux;}
else {p++;aux=produs();val-=aux;}
}
return val;
}
int produs()
{
int aux,val=para_nr();
while(*p=='*'||*p=='/')
{
if(*p=='*'){p++;aux=para_nr();val*=aux;}
else {p++;aux=para_nr();val/=aux;}
}
return val;
}
int para_nr()
{
int val;
if(*p=='(')
{
p++;
val=suma();
p++;
return val;
}
val=0;
while('0'<=*p&&*p<='9')
{
val*=10;
val+=*p-'0';
p++;
}
return val;
}