Pagini recente » Cod sursa (job #2027570) | Cod sursa (job #1854294) | Cod sursa (job #22469) | Cod sursa (job #1726706) | Cod sursa (job #943697)
Cod sursa(job #943697)
#include<stdio.h>
#include<string.h>
#define maxn 100005
using namespace std;
int k=1;
char e[maxn];
int eval();
int termen();
int factor();
void cit()
{
scanf("%s",e+1);
}
int factor()
{
int val=0;
if(e[k]=='(') { k++; return eval(); }
while(e[k]>='0' && e[k]<='9') { val=val*10+e[k]-'0'; k++; }
return val;
}
int termen()
{
int val;
val=factor();
while(e[k]=='*' || e[k]=='/')
{
k++;
if(e[k-1]=='*') val*=factor();
else val/=factor();
}
return val;
}
int eval()
{
int val;
val=termen();
while(e[k]=='+' || e[k]=='-')
{
k++;
if(e[k-1]=='+') val+=termen();
else val-=termen();
}
if(e[k]==')') k++;
return val;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
cit();
printf("%d",eval());
fclose(stdin);
fclose(stdout);
return 0;
}