Pagini recente » Cod sursa (job #2037195) | Cod sursa (job #1257166) | Cod sursa (job #423464) | Cod sursa (job #1624512) | Cod sursa (job #2205053)
#include <fstream>
using namespace std;
ifstream cin ("evaluare.in");
ofstream cout ("evaluare.out");
char v [100001];
int i;
int eval ();
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;
}