Pagini recente » Cod sursa (job #2953847) | Cod sursa (job #1077731) | Cod sursa (job #362843) | Cod sursa (job #1069648) | Cod sursa (job #1007971)
#include <cstdio>
using namespace std;
char a[100004];
char *p;
int termen();
int factor();
int eval()
{
int ret=termen();
while(*p=='+'||*p=='-')
{
if(*p=='+')
{
p++;
ret+=termen();
}
else
{
ret-=termen();
}
}
return ret;
}
int termen()
{
int ret=factor();
while(*p=='*'||*p=='/')
{
if(*p=='*')
{
p++;
ret*=factor();
}
else
{
p++;
ret/=factor();
}
}
return ret;
}
int factor()
{
int ret=0;
if(*p=='(')
{
p++;
ret=eval();
p++;
}
else
{
while(*p>='0'&&*p<='9')
{
ret=ret*10+*p-'0';
p++;
}
}
return ret;
}
int main()
{
freopen("evaluare.in", "r", stdin);
freopen("evaluare.out", "w", stdout);
fgets(a, 100004, stdin);
p=a;
printf("%d", eval());
}