Pagini recente » Cod sursa (job #209382) | Borderou de evaluare (job #520095) | Cod sursa (job #1974315) | Cod sursa (job #2360505) | Cod sursa (job #507520)
Cod sursa(job #507520)
#include <cstdio>
using namespace std;
#define m 100110
char s[m];
int n;
int op1 ();
int subs (){
int rez = 0;
if( s[n] == '(' ){
++n;
rez = op1 ();
++n;
}
else{
while ( s[n]>='0' && s[n]<='9' ){
rez = rez*10 + s[n]-'0';
++n;
}
}
return rez;
}
int op2 (){
int rez=subs ();
while( s[n]=='*' || s[n]=='/' ){
if(s[n]=='*'){
++n;
rez*=subs ();
}
else{
++n;
rez/=subs ();
}
}
return rez;
}
int op1 (){
int rez=op2 ();
while( s[n]=='+' || s[n]=='-' ){
if(s[n]=='+'){
++n;
rez+=op2 ();
}
else{
++n;
rez-=op2 ();
}
}
return rez;
}
int main ()
{
freopen ("evaluare.in","r",stdin);
freopen ("evaluare.out","w",stdout);
fgets( s , m , stdin );
printf("%d\n",op1());
return 0;}