Pagini recente » Cod sursa (job #662141) | Cod sursa (job #139783) | Cod sursa (job #883628) | Cod sursa (job #2836587) | Cod sursa (job #2363647)
#include <fstream>
#define MAXN 100000
using namespace std;
ifstream cin( "evaluare.in" );
ofstream cout( "evaluare.out" );
char s[MAXN], *p=s;
int expresie();
int numar( )
{
int ans=0;
while( '0'<=*p && *p<='9' )
{
ans=ans*10+(*p-'0');
p++;
}
return ans;
}
int factor( )
{
int ans;
if( *p=='(' )
{
p++;
ans=expresie();
p++;
}
else
ans=numar();
return ans;
}
int termen( )
{
int ans=factor();
while( *p=='*' || *p=='/' )
{
p++;
if( *(p-1)=='*' )
ans*=factor();
else
ans/=factor();
}
return ans;
}
int expresie( )
{
int ans=termen();
while( *p=='+' || *p=='-' )
{
p++;
if( *(p-1)=='+' )
ans+=termen();
else
ans-=termen();
}
return ans;
}
int main()
{
cin>>s;
cout<<expresie();
return 0;
}