Pagini recente » Cod sursa (job #1815345) | Cod sursa (job #2466446) | Cod sursa (job #2099053) | Cod sursa (job #2795331) | Cod sursa (job #1393232)
#include <stdio.h>
using namespace std;
FILE*f=fopen("evaluare.in","r"),*g=fopen("evaluare.out","w");
int k;
char s[100100];
int expresie();
int termen();
int factor();
int main()
{
fscanf(f,"%s",&s);
k = 0;
int sol = expresie();
fprintf(g,"%d\n",sol);
return 0;
}
int expresie()
{
int r = termen();
while(s[k] == '+' || s[k] == '-')
{
k++;
if(s[k-1] == '+')
{
r += termen();
}
else{
r -= termen();
}
}
return r;
}
int termen()
{
int r = factor();
while(s[k] == '*' || s[k] == '/')
{
k++;
if(s[k-1] == '*')
{
r *= factor();
}
else{
r /= factor();
}
}
return r;
}
int factor()
{
int r;
if(s[k] == '(')
{
k++;
r = expresie();
k++;
}
else
{
r = 0;
while(s[k] >= '0' && s[k] <= '9')
{
r = r *10 + (s[k] - '0');
k++;
}
}
return r;
}