Pagini recente » Cod sursa (job #2187531) | Cod sursa (job #2057187) | Cod sursa (job #2057118) | Cod sursa (job #1225071) | Cod sursa (job #2188992)
//#include <ambitie>
#include <fstream>
#include <cstring>
#define nrmax 100003
using namespace std;
ifstream input("evaluare.in");
ofstream print("evaluare.out");
char c[nrmax],*p=c;
long Solve();
long nr();
long termen(){
long returnela=nr();
while(*p=='*' || *p=='/'){
switch(*p){
case '*':
++p;
returnela*=nr();
break;
case '/':
++p;
returnela/=nr();
break;
}
}
return returnela;
}
long nr(){
long returnela=0;
if(*p=='('){
++p;
returnela=Solve();
++p;
}
else {
while(isdigit(*p)){
returnela*=10;
returnela+=*p-'0';
++p;
}
}
return returnela ;
}
long Solve(){
long ans = termen();
while(*p=='+' || *p=='-'){
switch(*p){
case '+':
++p;
ans+= termen();
break;
case '-':
++p;
ans-=termen();
break;
}
}
return ans;
}
int main(){
input.getline(c,nrmax);
print<<Solve();
print.close();
input.close();
return 0;
}