Pagini recente » Cod sursa (job #896900) | Cod sursa (job #860911) | Cod sursa (job #925699) | Cod sursa (job #2541226) | Cod sursa (job #1651959)
#include <fstream>
using namespace std;
string s;
int i, l;
int term (), fact ();
int expr () {
int sol = term();
while (s[i] == '+' or s[i] == '-') {
i++;
if (s[i-1] == '+')
sol += term();
else
sol -= term();
}
return sol;
}
int term () {
int sol = fact();
while (s[i] == '*' or s[i] == '/') {
i++;
if (s[i-1] == '*')
sol *= fact();
else
sol /= fact();
}
return sol;
}
int fact () {
int sol = 0;
if (s[i] == '(')
i++, sol = expr(), i++;
else
while ('0' <= s[i] and s[i] <= '9')
sol *= 10, sol += s[i]-'0', i++;
return sol;
}
int main () {
ifstream fi("evaluare.in");
ofstream fo("evaluare.out");
fi >> s; l = s.length()-1;
fo << expr();
return 0;
}