Pagini recente » Cod sursa (job #2721697) | Cod sursa (job #423977) | Rating Sasarman Florina (Florina08) | Cod sursa (job #166035) | Cod sursa (job #1363911)
#include <cstdio>
using namespace std;
char a[100005];
int poz=1;
int nr(),termen(),eval();
inline int nr()
{
int x;
for(x=0;a[poz]>='0' && a[poz]<='9';x=x*10+a[poz++]-'0');
return x;
}
inline int factor()
{
if(a[poz]=='(')
{
++poz;
int aux=eval();
++poz; return aux;
}
return nr();
}
inline int termen()
{
int sol=factor();
while(a[poz]=='*' || a[poz]=='/')
{
if(a[poz++]=='*') sol*=factor();
else sol/=factor();
}
return sol;
}
inline int eval()
{
int sol=termen();
while(a[poz]=='+' || a[poz]=='-')
{
if(a[poz++]=='+') sol+=termen();
else sol-=termen();
}
return sol;
}
int main()
{
freopen ("evaluare.in","r",stdin);
freopen ("evaluare.out","w",stdout);
scanf("%s", (a+1));
printf("%d\n", eval());
return 0;
}