Cod sursa(job #846488)

Utilizator Kira96Denis Mita Kira96 Data 2 ianuarie 2013 12:25:40
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include<fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int expresie();
int termen();
int factor();
int i;
char s[100100];
int expresie()
{
    int sol;
    sol=termen();
    while(s[i]=='+'||s[i]=='-')
	{
        if(s[i]=='+')
		{
            i++;
            sol+=termen();
        } 
		else
		{
            i++;
            sol-=termen();
        }
    }
    return sol;
}
int termen() 
{
    int sol;
    sol=factor();
    while(s[i]=='*'||s[i]=='/') 
	{
        if(s[i]=='*') 
		{
            i++;
            sol*=factor();
        } 
		else 
		{
            i++;
            sol/=factor();
        }
    }
    return sol;
}
int factor() 
{
    int sol=0;
    if(s[i]=='(')
	{
        i++;
        sol=expresie();
        i++;
    } 
	else
	{
        while(s[i]>='0'&&s[i]<='9')
		{
            sol=sol*10+s[i]-'0';
            i++;
        }
    }
    return sol;
}
int main() 
{
    f>>s+1;
    i=1;
    g<<expresie()<<"\n";
    return 0;
}