Pagini recente » Cod sursa (job #1934823) | Cod sursa (job #2472070) | Cod sursa (job #1169406) | Cod sursa (job #2186553) | Cod sursa (job #1957108)
#include <cstdio>
using namespace std;
int r,poz;
char s[100004];
int eval();
int factor ()
{
int r=0;
if (s[poz]=='(')
{
poz++;
r=eval();
poz++;
}
else
{
while (s[poz]>='0' && s[poz]<='9')
{
r=r*10+s[poz]-'0';
poz++;
}
}
return r;
}
int termen ()
{
int r=factor();
while (s[poz]=='*' || s[poz]=='/')
{
if (s[poz]=='*')
{
poz++;
r*=factor();
}
else
{
poz++;
r/=factor();
}
}
return r;
}
int eval ()
{
int r=termen();
while (s[poz]=='+' || s[poz]=='-')
{
if (s[poz]=='+')
{
poz++;
r+=termen();
}
else
{
poz++;
r-=termen();
}
}
return r;
}
int main()
{
freopen ("evaluare.in","r",stdin);
freopen ("evaluare.out","w",stdout);
gets(s);
poz=0;
r=0;
r=eval();
printf ("%d\n", r);
return 0;
}