Pagini recente » Cod sursa (job #1807158) | Cod sursa (job #3157957) | Cod sursa (job #1218014) | Cod sursa (job #2868724) | Cod sursa (job #542655)
Cod sursa(job #542655)
#include <cstdio>
const long MAX = 100010;
char S[MAX], *p=S;
long prod();
long numar();
long eval();
long eval()
{
long r=prod();
while(*p=='-' || *p=='+')
{
if(*p=='-')
{
++p;
r-=prod();
break;
}
else
{
++p;
r+=prod();
break;
}
}
return r;
}
long prod()
{
long r=numar();
while(*p=='*' || *p=='/')
{
if(*p=='*')
{
++p;
r*=numar();
break;
}
else
{
++p;
r/=numar();
break;
}
}
return r;
}
long numar()
{
long r=0;
if(*p=='(')
{
++p;
r = eval();
++p;
}
else
{
while( *p>='0' && *p<='9')
{
r = r*10 + *p - '0';
++p;
}
}
return r;
}
int main() {
fgets(S, MAX, fopen("evaluare.in", "r"));
fprintf(fopen("evaluare.out", "w"), "%ld\n", eval());
return 0;
}