Cod sursa(job #669550)

Utilizator RobertBBadea Corneliu Robert RobertB Data 27 ianuarie 2012 11:49:04
Problema Evaluarea unei expresii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <fstream>
using namespace std;
char sir[100000];


	ifstream f("evaluare.in");
	ofstream g("evaluare.out");

int eval(int x, int y)
{
	if(sir[x]=='(' && sir[y]==')');
		return eval(x+1,y-1);
	int i;
	int k=0;
	for(i=y;i>=x;i--) {
		if(sir[i]=='(') {
			k++;
		} else if (sir[i]==')') {
			k--;
		} else if (sir[i]=='+' && k==0) {
			return eval(x,i-1) + eval(i+1,y);
		} else if (sir[i]=='-' && k==0) {
			return eval(x,i-1) - eval(i+1,y);
		}			
	}
	for(i=y;i>=x;i--) {
		if(sir[i]=='(') {
			k++;
		} else if (sir[i]==')') {
			k--;
		} else if (sir[i]=='*' && k==0) {
			return eval(x,i-1) * eval(i+1,y);
		} else if (sir[i]=='/' && k==0) {
			return eval(x,i-1) / eval(i+1,y);
		}			
	}
	char nr[y-x+1];
	for(i=x;x<y;x++) {
		nr[i-x]=sir[x];
	}
	return atoi(nr);
	
	
	
	
}

int main()
{
	int i=0;
	while(!f.eof()) {
		f>>sir[i];
		i++;
		cout<<sir[i];
	}
	g<<eval(0,i);
}