Cod sursa(job #783662)

Utilizator misinozzz zzz misino Data 3 septembrie 2012 15:19:39
Problema Evaluarea unei expresii Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int nr,p;
char s[100001];
int evaluare();
int factor()
{int rez=0;
if(s[p]=='(')
{++p;
rez=evaluare();
++p;
}
else
	while(s[p]>=48&&s[p]<=57)
	{rez=rez*10+s[p]-48;
	++p;
	}
return rez;
}
int termen()
{int rez=factor();
while(s[p]=='*'||s[p]=='/')
{++p;
if(s[p-1]=='*')
	rez*=factor();
else
	rez/=factor();
break;
}
return rez;
}
int evaluare()
{int rez=termen();
while(s[p]=='+'||s[p]=='-')
{++p;
if(s[p-1]=='+')
	rez+=termen();
else
	rez-=termen();

break;
}
return rez;
}

int main()
{f>>s;
p=0;
nr=evaluare();
g<<nr<<'\n';
return 0;
}