Cod sursa(job #2882018)

Utilizator vladsipunct5555Butnrau Vlad vladsipunct5555 Data 31 martie 2022 09:22:09
Problema Evaluarea unei expresii Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in ("evaluare.in");
ofstream out ("evaluare.out");
string s;
int poz = 0;
int suma(), produs();
int make_number ()
{
	int k = 0;
	while (s[poz] <= '9' && s[poz] >= '0')
	{
		k = k * 10 + s[poz] - '0';
		poz++;
	}
	return k;
}
int eval ()
{
	int rez = 0;
	if (s[poz] == '(')
	{
		poz++;
		rez = suma();
		poz++;
	}
	else
		rez = make_number();
	return rez;
}
int suma ()
{
	int rez = produs();
	while (s[poz] == '+' || s[poz] == '-')
		if (s[poz] == '+')
		{
			poz++;
			rez += produs();
		}
		else if (s[poz] == '-')
		{
			poz++;
			rez -= produs();
		}
	return rez;
}
int produs ()
{
	int rez = eval();
	while (s[poz] == '*' || s[poz] == '/')
		if (s[poz] == '*')
		{
			poz++;
			rez *= eval();
		}
		else if (s[poz] == '/')
		{
			poz++;
			rez /= eval();
		}
	return rez;
}
int main() 
{
	cin >> s;
	cout << suma();
    return 0;
}