Pagini recente » Cod sursa (job #2920434) | Cod sursa (job #1020762) | Cod sursa (job #796424) | Cod sursa (job #2129320) | Cod sursa (job #1571163)
#include <fstream>
using namespace std;
ifstream inf("evaluare.in");
ofstream outf("evaluare.out");
char E[100010], *p;
int s(), f(), b(), n();
int main()
{
inf >> E;
p = E;
outf << s();
return 0;
}
int s()
{
int ret = f();
while(*p == '+' || *p == '-')
{
if(*p == '+')
{
p++;
ret+=f();
}
else
{
p++;
ret-=f();
}
}
return ret;
}
int f()
{
int ret = b();
while(*p == '*' || *p == '/')
{
if(*p == '*')
{
p++;
ret*=b();
}
else
{
p++;
ret/=b();
}
}
return ret;
}
int b()
{
int ret;
if(*p == '(')
{
p++;
ret = s();
p++;
}
else
{
ret = n();
}
return ret;
}
int n()
{
int ret = 0;
while(*p >= '0' && *p <= '9')
{
ret = 10*ret + *p-'0';
p++;
}
return ret;
}