Pagini recente » Cod sursa (job #1540606) | Cod sursa (job #1796425) | Cod sursa (job #1439377) | Cod sursa (job #649036) | Cod sursa (job #388094)
Cod sursa(job #388094)
#include <algorithm>
using namespace std;
#define DIM 100005
char s[DIM],*p=s;
int eval ();
int termen ();
int factor ();
int eval ()
{
int r;
for (r=termen (); *p=='+' || *p=='-'; )
{
if (*p=='+')
{
++p;
r+=termen ();
}
if (*p=='-')
{
++p;
r-=termen ();
}
}
return r;
}
int termen ()
{
int r;
for (r=factor (); *p=='*' || *p=='/'; )
{
if (*p=='*')
{
++p;
r*=factor ();
}
if (*p=='/')
{
++p;
r/=factor ();
}
}
return r;
}
int factor ()
{
int r;
if (*p=='(')
{
++p;
r=eval ();
++p;
}
else
for (r=0; isdigit (*p); ++p)
r=r*10+*p-'0';
return r;
}
int main ()
{
freopen ("evaluare.in","r",stdin);
freopen ("evaluare.out","w",stdout);
fgets (s,DIM,stdin);
printf ("%d",eval ());
return 0;
}