Pagini recente » Cod sursa (job #1305499) | Cod sursa (job #1541517) | Cod sursa (job #3132091) | Cod sursa (job #1566862) | Cod sursa (job #616808)
Cod sursa(job #616808)
#include <stdio.h>
using namespace std;
char s[100005];
int subexpresie();
int inmultire_impartire();
int i;
int adunare_scadere() {
int r = inmultire_impartire();
while ( s[i]=='+' || s[i]=='-' ) {
switch ( s[i] ) {
case '+':
++i;
r +=inmultire_impartire ();
break;
case '-':
++i;
r -= inmultire_impartire();
break;
}
}
return r;
}
int inmultire_impartire() {
int r = subexpresie();
while ( s[i]=='*' || s[i]=='/' ) {
switch ( s[i] ) {
case '*' :
++i;
r *= subexpresie();
break;
case '/':
++i;
r /= subexpresie();
break;
}
}
return r;
}
int subexpresie() {
int r=0;
if ( s[i] == '(' ) {
++i;
r = adunare_scadere();
++i;
} else {
while ( s[i]>='0' && s[i]<='9' ) {
r = r*10 + s[i] - '0';
++i;
}
}
return r;
}
int main() {
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
fgets(s, 100005, stdin);
int r;
r=adunare_scadere();
printf("%d\n", r);
return 0;
}