Cod sursa(job #818859)

Utilizator gabriela95Andreea Gabriela gabriela95 Data 18 noiembrie 2012 10:11:07
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<fstream>
#include<string.h>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int expresie(), factor(), termen();
char s[100001];
int i;
int main()
{
	f>>s;
	i=0;
	g<<expresie();
	return 0;


}
int expresie(){
	int r=termen();
	while(s[i]=='+'||s[i]=='-')
	{
		i++;
		if(s[i-1]=='+')
			r+=termen();
		else
			r-=termen();
	}
	return r;
}
int termen(){
	int p=factor();
	while(s[i]=='*'||s[i]=='/')
	{
		i++;
		if(s[i-1]=='*')
			p*=factor();
		else
			p/=factor();
	}
	return p;
}
int factor(){
	int q;
	if(s[i]=='('){
		i++;//sar (
		q=expresie();
		i++;//sar )
	} else {
		q=0;
		while(s[i]>='0'&&s[i]<='9')
		{
			q=q*10+s[i]-'0';
			i++;
		}
	}
	
	return q;
}