Pagini recente » Cod sursa (job #161559) | Cod sursa (job #1478429) | Cod sursa (job #955016) | Cod sursa (job #1104574) | Cod sursa (job #723794)
Cod sursa(job #723794)
#include<fstream>
#define NMAX 100010
using namespace std;
char a[NMAX];
int i;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
void Citeste()
{
f.getline(a, NMAX);
}
int grad1();
int grad3()
{
int rez=0;
if (a[i]=='(') ++i, rez=grad1(), ++i;
else
{
/*if (a[i]==)++i;*/
while (a[i]>='0' && a[i]<='9') rez=rez*10+a[i]-'0', ++i;
}
return rez;
}
int grad2()
{
int rez=grad3();
while (a[i]=='*' || a[i]=='/')
if (a[i]=='*') ++i, rez*=grad3();
else ++i, rez/=grad3();
return rez;
}
int grad1()
{
int rez=grad2();
while (a[i]=='+' || a[i]=='-')
if (a[i]=='+') ++i, rez+=grad2();
else ++i, rez-=grad2();
return rez;
}
int main()
{
Citeste();
int rez;
rez=grad1();
g<<rez<<"\n";
f.close();
g.close();
return 0;
}