Cod sursa(job #897740)

Utilizator tudorv96Tudor Varan tudorv96 Data 27 februarie 2013 21:56:02
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <string>
using namespace std;

string s;
unsigned int i = -1;

int N(), E(), I();

int N ()
{
	++i;
	int aux = 0;
	if (s[i] == '(')
		aux = E(), ++i;
	else
	{
		while (s[i] >= '0' && s[i] <= '9' && i < s.size())
			aux = aux * 10 + s[i++] - '0';
	}
	return aux;
}

int I ()
{
	int aux = N();
	while ((s[i] == '*' || s[i] == '/' )&& i < s.size())
		aux = s[i] == '*' ? aux * N() : aux / N();
	return aux;	
}

int E ()
{
	int aux = I();
	while ((s[i] == '+' || s[i] == '-' ) && i < s.size())
		aux += (s[i] == '+' ? I() : -I());
	return aux;
}	
		
int main ()
{
	ifstream fin ("evaluare.in");
	fin >> s;
	fin.close();
	ofstream fout ("evaluare.out");
	fout << E();
	fout.close ();
	return 0;
}