Pagini recente » Cod sursa (job #1891410) | Cod sursa (job #2838496) | Cod sursa (job #730442) | Cod sursa (job #2909237) | Cod sursa (job #2205054)
#include <fstream>
using namespace std;
ifstream cin ("evaluare.in");
ofstream cout ("evaluare.out");
char v [100001];
int i;
int factori ();
int inmultire ();
int evaluare (){
int nr = inmultire();
while (v [i] == '+' || v [i] == '-'){
if (v [i ++] == '+') nr += inmultire ();
else nr -= inmultire ();
}
return nr;
}
int factori(void){
int nr = 0;
if ( v [i] == '('){
i ++;
nr = evaluare ();
i ++;
}
else for (; v [i] >= '0'&& v [i] <= '9'; i ++) nr = nr * 10 + (v [i] - '0');
return nr;
}
int inmultire (){
int nr = factori();
while (v [i] == '*' || v [i] == '/'){
if (v [i ++] == '*') nr *= factori();
else nr /= factori ();
}
return nr;
}
int main(){
cin >> v;
cout << evaluare ();
return 0;
}