Pagini recente » Cod sursa (job #3235412) | Cod sursa (job #1952577) | Cod sursa (job #3153273) | Cod sursa (job #2621694) | Cod sursa (job #479037)
Cod sursa(job #479037)
#include <cstdio>
#include <cstring>
#define NN 100005
#define LMAX 2
char S[NN],*p=S,op[2][3]={"+-","*/"};
int eval( int a,int b, char op ){
switch ( op ) {
case '+' : return a+b;
case '-' : return a-b;
case '*' : return a*b;
case '/' : return a/b;
}
}
int expr( int lev ){
int x, y;
if( lev == LMAX ){
if( *p == '('){
++p, x = expr( 0 ) ,++p;
}
else {
for( x=0; *p>='0' && *p<='9'; p++ ){
x= x*10 + *p-'0';
}
}
}
else {
for( x=expr(lev+1) ; strchr(op[lev],*p) ; x=y){
y= eval(x , expr(lev+1), *p++);
}
}
return x;
}
int main(){
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(S);
printf("%d",expr(0));
return 0;
}