Pagini recente » Cod sursa (job #1167596) | Cod sursa (job #2329099) | Cod sursa (job #3155269) | Cod sursa (job #700827) | Cod sursa (job #2926241)
#include <fstream>
using namespace std;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
int i, j, n, m, poz;
char s[100005];
int expresie();
int factor();
int termen();
int expresie(){
int a=termen();
int b;
while(s[poz]=='+' || s[poz]=='-'){
if(s[poz] == '+'){
poz++;
b = termen();
a=a+b;
}else if(s[poz]=='-'){
poz++;
b=termen();
a=a-b;
}
}
return a;
}
int termen(){
int a=factor();
int b;
while(s[poz]=='*' || s[poz]=='/'){
if(s[poz]=='*'){
poz++;
b=factor();
a=a*b;
}
else if(s[poz] == '/'){
poz++;
b = factor();
a = a/b;
}
}
return a;
}
int factor(){
int a;
if(s[poz]=='('){
poz++;
a=expresie();
poz++;
}
else{
a=0;
while(s[poz]>='0' && s[poz]<='9'){
a=a*10+(s[poz]-'0');
poz++;
}
}
return a;
}
int main(){
cin>>s;
cout<<expresie();
}