Pagini recente » Cod sursa (job #2789914) | Cod sursa (job #664155) | Cod sursa (job #933255) | Cod sursa (job #703527) | Cod sursa (job #3159828)
#include <iostream>
#include <stdio.h>
#include <fstream>
using namespace std;
ifstream in("evaluare.in");
ofstream out("evaluare.out");
char v[100005];
int n = 0;
int add();
int fact(){
int nr = 0;
if (v[n] == '(') {
n++;
nr += add();
n++;
}
else {
while (v[n] >= '0' && v[n] <= '9') {
nr = nr * 10 + v[n] - '0';
n++;
}
}
return nr;
}
int multi(){
int rez = fact();
while (v[n] == '*' || v[n] == '/')
if (v[n] == '*'){
n++;
rez *= fact();
}
else{
n++;
rez /= fact();
}
return rez;
}
int add() {
int rez;
rez = multi();
while (v[n] == '+' || v[n] == '-')
if (v[n++] == '+')
rez += multi();
else
rez -= multi();
return rez;
}
int main()
{
in >> v;
n = 0;
out << add();
return 0;
}