Cod sursa(job #1145294)

Utilizator vladrochianVlad Rochian vladrochian Data 18 martie 2014 08:43:37
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
using namespace std;
char *p=new char[100002];
int ng();
int g2()
{
	int r=ng();
	while(*p=='*' || *p=='/')
		switch(*(p++))
		{
			case '*':
			r*=ng();
			break;
			case '/':
			r/=ng();
			break;
		}
	return r;
}
int g1()
{
	int r=g2();
	while(*p=='+' || *p=='-')
		switch(*(p++))
		{
			case '+':
			r+=g2();
			break;
			case '-':
			r-=g2();
			break;
		}
	return r;
}
int ng()
{
	int r=0;
	if(*p=='(')
	{
		++p;
		r=g1();
		++p;
	}
	else
		while(*p>='0' && *p<='9')
			r=r*10+*(p++)-'0';
	return r;
}
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
int main()
{
	fin>>p;
	fout<<g1()<<"\n";
	return 0;
}