Pagini recente » Cod sursa (job #1879433) | Cod sursa (job #3263141) | Cod sursa (job #888262) | Cod sursa (job #18414) | Cod sursa (job #2149912)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int i;
string s;
int expresion();
int term();
int fact();
int expresion() {
int rez = term();
while (s[i] == '+' || s[i] == '-') {
i++;
if (s[i - 1] == '+') {
rez += term();
} else {
rez -= term();
}
}
return rez;
}
int term() {
int rez = fact();
while (s[i] == '*' || s[i] == '/') {
i++;
if (s[i - 1] == '*') {
rez *= fact();
} else {
rez /= fact();
}
}
return rez;
}
int fact() {
int rez = 0;
if (s[i] == '(') {
i++;
rez = expresion();
i++;
}
while (s[i] >= '0' && s[i] <= '9') {
rez *= 10;
rez += s[i] - '0';
i++;
}
return rez;
}
int main() {
ifstream cin ("evaluare.in");
ofstream cout ("evaluare.out");
cin >> s;
cout << expresion();
return 0;
}