Pagini recente » Cod sursa (job #3237414) | Cod sursa (job #1957073) | Cod sursa (job #2390865) | Cod sursa (job #272125) | Cod sursa (job #818688)
Cod sursa(job #818688)
#include <stdio.h>
#include <string.h>
using namespace std;
char *s;
int e(char * &s,int l=0,int v=0)
{
if(l==2)
{
if(*s=='(')
{
++s;
int r=e(s);
++s;
return r;
}
else if(*s>='0'&&*s<='9')
{
int r=v*10+(*s)-'0';
return e(++s,2,r);
}
else return v;
}
else if(l==1)
{
int r=e(s,2);
while(1)
{
if(*s=='*')
r*=e(++s,2);
else if(*s=='/')
r/=e(++s,2);
else
return r;
}
}
else
{
int v=e(s,1);
while(1)
{
if(*s=='+')
v+=e(++s,1);
else if(*s=='-')
v-=e(++s,1);
else return v;
}
}
}
int main()
{
freopen("evaluare.in", "r", stdin);
freopen("evaluare.out","w",stdout);
s = new char[150];
scanf("%s", s);
s[strlen(s)]=0;
printf("%d",e(s));
}