Pagini recente » Cod sursa (job #2322534) | Cod sursa (job #870082) | Cod sursa (job #1224133) | Cod sursa (job #761207) | Cod sursa (job #1464410)
#include<stdio.h>
#define NMAX 10010
FILE *fin,*fout;
char s[NMAX];
long expresie();
long termen();
long facotr();
int i=0;
void read()
{
fin=fopen("evaluare.in","r");
fscanf(fin,"%s",s);
fclose(fin);
}
long expresie()
{
long x=termen();
while(s[i]=='+'||s[i]=='-')
{
switch(s[i])
{
case '+':
++i;
x+=termen();
break;
case '-':
++i;
x-=termen();
}
}
return x;
}
long termen()
{
long x=facotr();
while(s[i]=='*'||s[i]=='/')
{
switch(s[i])
{
case '*':
++i;
x*=facotr();
break;
case '/':
++i;
x/=facotr();
break;
}
}
return x;
}
long facotr()
{
long x=0;
if(s[i]=='(')
{
++i;
x=expresie();
++i;
}
else
while(s[i]>='0'&&s[i]<='9')
x=x*10+s[i]-'0',
++i;
return x;
}
int main()
{
read();
long rez;
rez=expresie();
fout=fopen("evaluare.out","w");
fprintf(fout,"%ld",rez);
fclose(fout);
return 0;
}