Pagini recente » Cod sursa (job #3231673) | Borderou de evaluare (job #821531) | Borderou de evaluare (job #2279310) | Borderou de evaluare (job #963477) | Cod sursa (job #1116298)
#include <fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream g("evaluare.out");
char s[100005], *p;
int e(),t(),f();
int main(){
fin>>s;
p = s;
g<<e();
return 0;
}
int e(){
int r = t();
while( *p == '+' || *p == '-' )
switch( *p ){
case '+':{ ++p; r+=t(); break; }
default :{ ++p; r-=t(); break; } }
return r;
}
int t(){
int r = f();
while( *p == '*' || *p == '/' )
switch( *p ){
case '*':{ ++p; r*=f(); break; }
default :{ ++p; r/=f(); break; } }
return r;
}
int f(){
int r=0;
if( *p == '(' ) { ++p; r = e(); ++p; return r; }
while( *p >= '0' && *p <= '9' ) { r = r*10 + *p - '0'; ++p; }
return r;
}