Pagini recente » Cod sursa (job #2102745) | Cod sursa (job #1609211) | Cod sursa (job #235003) | Cod sursa (job #1714469) | Cod sursa (job #1919128)
#include<stdio.h>
using namespace std;
const int N = 100005;
int nr2, c = 1;
char v[N];
int adunare();
int inmultire();
int caracter();
int caracter()
{
int nr = 0, semn = 1;
if (v[c] == '-')
{
semn = -1;
c++;
}
if (v[c] == '(')
{
c++;
nr = adunare();
c++;
return semn * nr;
}
while (v[c] >= '0' && v[c] <= '9')
nr = nr * 10 + (v[c++] - '0');
return semn * nr;
}
int inmultire ()
{
int p = caracter();
while (v[c] == '*' || v[c] == '/')
{
if (v[c] == '*')
{
c++;
p *= caracter();
}
if (v[c] == '/')
{
c++;
p /= caracter();
}
}
return p;
}
int adunare ()
{
int s;
s = inmultire();
while (v[c] == '+' || v[c] == '-')
{
if (v[c] == '+')
{
c++;
s += inmultire ();
}
if (v[c] == '-')
{
c++;
s -= inmultire ();
}
}
return s;
}
int main ()
{
FILE *in, *out;
in = fopen ("evaluare.in", "r");
out = fopen ("evaluare.out", "w");
char x = '0';
while (x != EOF && x != '\n')
{
x = fgetc (in);
v[++nr2] = x;
}
fprintf (out, "%d", adunare());
return 0;
}