Pagini recente » Cod sursa (job #3234976) | Cod sursa (job #3122289) | Cod sursa (job #3144073) | Cod sursa (job #1197430) | Cod sursa (job #2068573)
#include <cstdio>
using namespace std;
char s[100005],*p;
int eval();
int termen();
int factor();
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",&s);
p=s;
printf("%d",eval());
return 0;
}
int eval(){
int r;
r=termen();
while(*p=='+' || *p=='-')
if(*p=='+'){++p;r+=termen();}
else {++p;r-=termen();}
return r;
}
int termen(){
int r;
r=factor();
while(*p=='*' || *p=='/')
if(*p=='*'){++p;r*=factor();}
else {++p;r/=factor();}
return r;
}
int factor(){
int r=0;
if(*p=='('){
++p;
r=eval();
++p;
}
else while(*p>='0' && *p<='9'){
r=r*10+((int)*p-'0');
++p;
}
return r;
}