Pagini recente » Cod sursa (job #2623807) | Cod sursa (job #778583) | Cod sursa (job #2554451) | Cod sursa (job #1387188) | Cod sursa (job #1647489)
#include <cstdio>
#include <cctype>
using namespace std;
char s[100001],*p;
int evaluare();
int numar()
{
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=numar();
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;
}