Pagini recente » Cod sursa (job #2749728) | Cod sursa (job #1158673) | Cod sursa (job #472461) | Cod sursa (job #1178750) | Cod sursa (job #2876007)
#include <iostream>
#include <fstream>
using namespace std;
char sir[100001];
char *p = sir;
int inmultire();
int expresie();
int adunare()
{
int rezultat = inmultire();
while(*p == '+' || *p == '-')
{
switch(*p){
case '+':
p++;
rezultat+=inmultire();
case '-':
p++;
rezultat-=inmultire();
}
}
return rezultat;
}
int inmultire()
{
int rezultat = expresie();
while(*p == '*' || *p == '/')
{
switch(*p){
case '*':
p++;
rezultat*=expresie();
break;
case '/':
p++;
rezultat/=expresie();
break;
}
}
return rezultat;
}
int expresie()
{
int rezultat;
if(*p == '(')
{
p++;
rezultat = adunare();
}
else{
rezultat = 0;
while(*p <= '9' && *p >= '0')
{
rezultat = rezultat*10 + int(*p) - 48;
p++;
}
}
return rezultat;
}
int main()
{
ifstream in("evaluare.in");
ofstream out("evaluare.out");
in.getline(sir, 100000);
int rezultat = adunare();
out << rezultat;
return 0;
}