Pagini recente » Cod sursa (job #378578) | Cod sursa (job #3255022) | Cod sursa (job #1804070) | Cod sursa (job #547062) | Cod sursa (job #439156)
Cod sursa(job #439156)
#include <cstdio>
char s[100010];
char *p;
long Termen();
long Factor();
long Eval();
int main()
{
fgets(s, 100010, fopen("evaluare.in", "r"));
fprintf(fopen("evaluare.out", "w"), "%ld\n", Eval());
return 0;
}
long Eval()
{
long r = Termen();
while ( *p ='+' || *p == '-' )
{
if ( *p == '+' )
{
++p;
r += Termen();
break;
}
else
{
++p;
r -= Termen();
break;
}
}
return r;
}
long Termen()
{
long r = Factor();
while ( *p == '*' || *p == '/' )
{
if ( *p == '*' )
{
++p;
r *= Factor();
break;
}
else
{
++p;
r /= Factor();
break;
}
}
return r;
}
long Factor()
{
long r = 0;
if ( *p == '(' )
{
++p;
r = Eval();
++p;
}
else
{
while ( *p >= '0' && *p <= '9' )
{
r = r * 10 + *p - '0';
++p;
}
}
return r;
}