Pagini recente » Cod sursa (job #2186580) | Cod sursa (job #294503) | Cod sursa (job #361412) | Cod sursa (job #2777186) | Cod sursa (job #2238521)
#include <bits/stdc++.h>
#define NMAX 100010
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char *c,s[NMAX];
int suma(),produs(),paranteze(),nr();
int main()
{
f>>s;
c=s;
cout<<suma();
return 0;
}
int suma()
{
int ret;
ret=produs();
while(*c=='+' || *c=='-')
{
if(*c=='+')
c++,ret+=produs();
else
c++,ret-=produs();
}
return ret;
}
int produs()
{
int ret=paranteze();
while(*c=='*' || *c=='/')
{
if(*c=='*')
c++,ret*=paranteze();
else
c++,ret/=paranteze();
}
return ret;
}
int paranteze()
{
int ret;
if(*c=='(')
{
c++;
ret=suma();
c++;
}
else
ret=nr();
return ret;
}
int nr()
{
int ret=0;
while(*c>='0' && *c<='9')
{
ret*=10;
ret+=*c-'0';
c++;
}
return ret;
}