Pagini recente » Cod sursa (job #417542) | Cod sursa (job #3235870) | Cod sursa (job #43067) | Cod sursa (job #2988919) | Cod sursa (job #1581986)
#include <cstdio>
#include <cctype>
using namespace std;
char *p,s[100001];
int evaluare();
int numar()
{
int x=0;
while (isdigit(*p)) x=x*10+(*p-'0'), p++;
return x;
}
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;
}