Pagini recente » Cod sursa (job #705714) | Cod sursa (job #1127092) | Rating Popa Cristina (cristinapopa5) | Cod sursa (job #2681337) | Cod sursa (job #2011077)
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
char s[101101];
char *p = s;
int factor();
int element();
int operatie(){
int result = factor();
while(*p!=NULL && (*p == '+' || *p == '-')){
switch(*p){
case '+': p++;
result += factor();
break;
case '-': p++;
result -= factor();
break;
}
}
return result;
}
int factor(){
int result = element();
while(*p!=NULL && (*p == '*' || *p == '/')){
switch(*p){
case '*': p++;
result *= element();
break;
case '/': p++;
result /= element();
break;
}
}
return result;
}
int element(){
int result;
if(*p == '('){
p++;
result = operatie();
p++;
}else{
int el = 0;
while(*p!=NULL && strchr("123456790",*p)!=NULL){
el = el*10 + (*p - '0');
p++;
}
result = el;
}
return result;
}
int main(){
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
cin.getline(s,101101);
cout<<operatie();
return 0;
}