Cod sursa(job #493826)

Utilizator PlayLikeNeverB4George Marcus PlayLikeNeverB4 Data 19 octombrie 2010 17:32:07
Problema Evaluarea unei expresii Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <stdio.h>
#include <stdlib.h>

char s[100001];
int p=0;

int factori();
int expresii();
int termeni()
{
	int r=factori();
	if(s[p]=='+')
	{
		p++;
		r=r+factori();
	}
	if(s[p]=='-')
	{
		p++;
		r=r-factori();
	}
	return r;
}

int factori()
{
	int r=expresii();
	if(s[p]=='*')
	{
		p++;
		r=r*expresii();
	}
	if(s[p]=='/')
	{
		p++;
		r=r/expresii();
	}
	return r;
}

int expresii()
{
	int r=0;
    while(s[p]>='0' && s[p]<='9')
	{
		r=10*r+s[p]-'0';
		p++;
	}
	if(s[p]=='(')
	{
		p++;
		r=termeni();
		p++;
	}
	return r;
}


int main()
{
	freopen("evaluare.in","r",stdin);
	freopen("evaluare.out","w",stdout);
	scanf("%s",&s);
	printf("%d",termeni());
}