Pagini recente » Cod sursa (job #2606664) | Cod sursa (job #1072817) | Cod sursa (job #2145722) | Cod sursa (job #1103261) | Cod sursa (job #2421592)
#include <fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char semn,semntrecut;
int rez,nr,a,inm_imp_nr,lngt,i;
string s;
int formnr()
{
int x = 0;
while(s[i] >= '0' && s[i] <= '9')
{
x = x * 10 + s[i] - '0';
++ i;
}
return x;
}
void inm_imp()
{
semn = s[i];
++ i;
inm_imp_nr = formnr();
if(semn == '*')
nr *= inm_imp_nr;
else
nr /= inm_imp_nr;
if(s[i] == '*' || s[i] == '/')
inm_imp();
}
void solve()
{
semntrecut = semn = '+';
if(s[i] == '-')
{
semntrecut = semn = '-';
i = 1;
}
while(i < lngt)
{
a = nr;
nr = 0;
nr = formnr();
if(s[i] == '*')
{
if(s[i] == '*' || s[i] == '/')
inm_imp();
if(semntrecut == '+')
rez += nr;
else
rez -= nr;
}
else if(s[i] == '/')
{
if(s[i] == '*' || s[i] == '/')
inm_imp();
if(semntrecut == '+')
rez += nr;
else
rez -=nr;
}
else if(semn == '+')
rez += nr;
else
rez -= nr;
semntrecut = semn;
semn = s[i];
++ i;
}
}
int main()
{
f >> s;
lngt = s.length();
solve();
g << rez;
}