Pagini recente » Cod sursa (job #2746286) | Cod sursa (job #218154) | Cod sursa (job #67340) | Cod sursa (job #757763) | Cod sursa (job #624074)
Cod sursa(job #624074)
#include <stdio.h>
#define dim 100001
char string[dim],*p=string;
long priority1();
long priority2();
long priority3();
long priority1()
{
long r=priority2();
if (*p=='+')
{
p++;
r+=priority2();
}
if (*p=='-')
{
p++;
r-=priority2();
}
return r;
}
long priority2()
{
long r=priority3();
if (*p=='*')
{
p++;
r*=priority3();
}
if(*p=='/')
{
p++;
r/=priority3();
}
return r;
}
long priority3()
{
long r=0;
if (*p=='(')
{
p++; //jump over opening parantheses
r = priority1(); // elavluate inner expresion
p++; //jump over closing parantheses
}
else
{
while ((*p>='0')&&(*p<='9'))
{
r = r*10 + *p-'0';
p++;
}
}
return r;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",string);
printf("%ld\n",priority1());
return 0;
}