Pagini recente » Cod sursa (job #677143) | Cod sursa (job #2604639) | Cod sursa (job #1368200) | Cod sursa (job #2198352) | Cod sursa (job #2148653)
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
char c;
int expresie();
int termen();
int factor();
int nr();
int expresie()
{
int rez=termen();
while(c=='+' || c=='-')
{
if(c=='+')
{
c=getchar();
rez+=termen();
}
else
{
c=getchar();
rez-=termen();
}
}
return rez;
}
int termen()
{
int rez=factor();
while(c=='*' || c=='/')
{
if(c=='*')
{
c=getchar();
rez*=factor();
}
else
{
c=getchar();
rez/=factor();
}
}
return rez;
}
int factor()
{
int rez=0,semn=1;
while(c=='-')
{
c=getchar();
semn=-semn;
}
while(c=='(')
{
c=getchar();
rez=expresie();
c=getchar();
return semn*rez;
}
while(isdigit(c))
{
rez=rez*10+c-'0';
c=getchar();
}
return rez*semn;
}
int main()
{
int ;
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
c=getchar();
printf("%d\n",expresie());
return 0;
}