Cod sursa(job #572148)

Utilizator Aronn00Vladutu Georgian Aronn00 Data 5 aprilie 2011 08:04:42
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream.h>
int expresie();
int termen();
int factor();
char s[100010],*p;
int main(){
	ifstream f("evaluare.in");
	ofstream g("evaluare.out");
	f>>s;
	p=s;
	g<<expresie();
	
	return 0;
}
int expresie(){
	int r=termen();
	while(*p=='+'||*p=='-')
		if(*p=='+'){
			p++;
			r+=termen();
		}
		else{
			p++;
			r-=termen();
		}
	return r;
	
}
int termen(){
	int r=factor();
	while(*p=='*'||*p=='/')
		if(*p=='*'){
			p++;
			r*=factor();
		}
		else{
			p++;
			r/=factor();
		}
	return r;
	
}

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