Pagini recente » Cod sursa (job #1404796) | Cod sursa (job #2979561) | Cod sursa (job #2312099) | Cod sursa (job #226333) | Cod sursa (job #930154)
Cod sursa(job #930154)
#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;
}