Pagini recente » Cod sursa (job #1143120) | Cod sursa (job #2849679) | Cod sursa (job #3130754) | Cod sursa (job #2938470) | Cod sursa (job #339084)
Cod sursa(job #339084)
#include <stdio.h>
char s[100010];
int i;
int suma();
int produs();
int termen();
int suma()
{
int sum,aux,j;
sum=produs();
while (s[i]=='+' || s[i]=='-'){
i++; j=i-1;
aux=produs();
if (s[j]=='+')
sum+=aux;
else
sum-=aux;
}
return sum;
}
int produs()
{
int prod,aux,j;
prod=termen();
while (s[i]=='/' || s[i]=='*'){
i++; j=i-1;
aux=termen();
if (s[j]=='*')
prod*=aux;
else
prod/=aux;
}
return prod;
}
int termen()
{
int x=0;
if (s[i]=='(')
{
i++;
x=suma();
i++;
}
else
while (s[i]<='9' && s[i]>='0'){
x=x*10+s[i]-'0';
i++;
}
return x;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
fgets(s,100010,stdin);
i=0;
printf("%d\n",suma());
fclose(stdin); fclose(stdout);
return 0;
}