Pagini recente » Cod sursa (job #526931) | Cod sursa (job #824369) | Cod sursa (job #2175467) | Cod sursa (job #2257620) | Cod sursa (job #1903167)
#include <cstdio>
#include <cstdlib>
using namespace std;
char c[100001], *p=c;
int termen();
int fact();
int eval()
{
int r=termen();
while (*p=='+' || *p=='-'){
if (*p=='+'){
++p;
r+=termen();
}
else {
++p;
r-=termen();
}
}
return r;
}
int termen()
{
int r=fact();
while (*p=='*' || *p=='/'){
if (*p=='*'){
++p;
r*=fact();
}
else{
++p;
r/=fact();
}
}
return r;
}
int fact()
{
int r=0;
if (*p=='(') ++p, r=eval(), ++p;
else while (*p>='0' && *p<='9') r=r*10+*p-'0', ++p;
return r;
}
int main (){
freopen("evaluare.in", "r", stdin);
freopen("evaluare.out", "w", stdout);
gets(c);
printf("%d", eval());
return 0;
}