Pagini recente » Cod sursa (job #2799918) | Cod sursa (job #854339) | Cod sursa (job #2283530) | Cod sursa (job #2492069) | Cod sursa (job #711956)
Cod sursa(job #711956)
#include <stdio.h>
#include <string.h>
char s[100010];
int i=0;
int exp();
int termen();
int factor()
{
int k=0;
if (s[i]=='(')
{
i++;
k=exp();
i++;
}
else
{ k=0;
while (s[i]>='0' && s[i]<='9') {k=k*10+(s[i]-'0') ;i++;}
}
return k;
}
int termen()
{
int k=factor();
while(s[i]=='*' || s[i]=='/')
{
if(s[i]=='*') {
i++;
k=k*factor();
}
else
{
i++;
k=k/factor();
}
}
return k;
}
int exp()
{
int k=termen();
while( s[i]=='+' || s[i]=='-')
if (s[i]=='+')
{i++;
k=k+termen();
}
else
{
i++;
k=k-termen();
}
return k;
}
int main()
{
freopen ("evaluare.in","r",stdin);
freopen ("evaluare.out","w",stdout);
scanf("%s",s);
printf("%d",exp());
return 0;
}