Pagini recente » Cod sursa (job #1309864) | Cod sursa (job #1050320) | Cod sursa (job #1446148) | Cod sursa (job #853158) | Cod sursa (job #1690028)
#include <cstdio>
#include <cctype>
using namespace std;
char s[100005],*p;
int evaluare();
int get_number()
{
int aux=0;
while (isdigit(*p)) aux=aux*10+(*p-'0'),p++;
return aux;
}
int factor()
{
int aux;
if (*p=='(') p++,aux=evaluare(),p++;
else aux=get_number();
return aux;
}
int termen()
{
int aux=factor();
while (*p=='*' || *p=='/')
{
if (*p=='*') p++,aux*=factor();
else p++,aux/=factor();
}
return aux;
}
int evaluare()
{
int aux=termen();
while (*p=='+' || *p=='-')
{
if (*p=='+') p++,aux+=termen();
else p++,aux-=termen();
}
return aux;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(s);
p=s;
printf("%d\n",evaluare());
return 0;
}