Pagini recente » Cod sursa (job #1502070) | Cod sursa (job #3313842) | Cod sursa (job #565695) | Cod sursa (job #562539) | Cod sursa (job #3321619)
#include <iostream>
#include <cctype>
#include <fstream>
#define mod 666013
using namespace std;
ifstream in("evaluare.in");
ofstream out("evaluare.out");
char c;
int operate(char c, int a, int b) {
if (c == '+')return a + b;
if (c == '-')return a - b;
if (c == '/')return a / b;
if (c == '*')return a * b;
}
int sum();
int num() {
in >> c;
if (c == '(') {
int suma = sum();
in >> c;
return suma;
}
int n = 0;
while (isdigit(c)) {
n = n * 10 + (c - '0');
if (!(in >> c)) {
c = ')';
break;
}
}
return n;
}
int prod() {
char op = '*';
int n = 1;
while (op == '*' || op == '/') {
n = operate(op, n, num());
op = c;
}
return n;
}
int sum() {
char op = '+';
int n = 0;
while (op == '+' || op == '-') {
n = operate(op, n, prod());
op = c;
}
return n;
}
int main()
{
out<< sum();
return 0;
}