Pagini recente » Cod sursa (job #243074) | Cod sursa (job #2072399) | Cod sursa (job #2228766) | Cod sursa (job #2697069) | Cod sursa (job #303840)
Cod sursa(job #303840)
#include <stdio.h>
#include <string.h>
#define LMAX 2
#define MAX 100010
char op[4][4]={"+-","*/","^",""};
char s[MAX],*p=s;
int eval(int a,int b,char op)
{
int t;
switch(op)
{
case '+': return a+b;
case '-': return a-b;
case '*': return a*b;
case '/': return a/b;
}
}
int expresie(int lev)
{
int x,y;
if(lev=LMAX)
if(*p=='(') { ++p; x=expresie(0); ++p;}
else
for(x=0; *p>='0' && *p<='9'; ++p)
x=x*10+*p-'0';
else
for(x=expresie(lev+1); strchr(op[lev],*p); x=y)
y=eval(x,expresie(lev+1),*p++);
return x;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(s);
printf("%d",expresie(0));
return 0;
}