Pagini recente » Cod sursa (job #1197369) | Cod sursa (job #2401102) | Cod sursa (job #516737) | Cod sursa (job #2547548) | Cod sursa (job #1516170)
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
char v[1002];
int i;
int termen();
int evaluare();
int factor();
void citire()
{
scanf("%s",&v);
}
int evaluare()
{
int r=termen();
while(v[i]=='-'||v[i]=='+')
{
if(v[i]=='+')
{
i++;
r+=termen();
}
else
if(v[i]=='-')
{
i++;
r-=termen();
}
}
return r;
}
int factor()
{
int r=0;
if(v[i]=='(')
{
i++;
r=evaluare();
i++;
}
else
{
while(v[i]>='0'&&v[i]<='9')
{
r=r*10+v[i]-'0';
i++;
}
}
return r;
}
int termen()
{
int r=factor();
while(v[i]=='*'||v[i]=='/')
{
if(v[i]=='*')
{
i++;
r*=factor();
}
else
if(v[i]=='/')
{
i++;
r/=factor();
}
}
return r;
}
void afisare()
{
printf("%d",evaluare());
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
citire();
afisare();
//cout << "Hello world!" << endl;
return 0;
}