Cod sursa(job #291880)

Utilizator Andreid91Ciocan Andrei Andreid91 Data 30 martie 2009 15:33:29
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<fstream.h>

char s[100005],*p=s;

int termen(),factor();

int evaluare()
	{
	int r=termen();
	while (*p=='+' || *p=='-')
		if (*p=='+')
			{
			++p;
			r+=termen();
			}
		   else {
			++p;
			r-=termen();
			}
	return r;
	}

int termen()
	{
	long r=factor();
	while (*p=='*' || *p=='/')
		if (*p=='*')
			{
			++p;
			r*=factor();
			}
		   else {
			++p;
			r/=factor();
			}
	return r;
	}

int factor()
	{
	long r=0;
	if (*p=='(')
		{
		++p;
		r=evaluare();
		++p;
		}
		else while (*p>='0' && *p<='9')
				{
				r=r*10+(*p-'0');
				++p;
				}
	return r;
	}




int main()
{
ifstream f("evaluare.in");
f>>s;
f.close();
ofstream g("evaluare.out");
g<<evaluare();
g.close();
return 0;
}