Pagini recente » Cod sursa (job #2456838) | Cod sursa (job #745445) | Cod sursa (job #1042376) | Cod sursa (job #2303548) | Cod sursa (job #2501736)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
void citire(char s[10010])
{
fin.getline(s,10010);
}
char j[10010],i=0;
int anamere();
int inmultire();
int rezolv()
{
int p=inmultire();
while (j[i]=='+' || j[i]=='-')
{
if (j[i]=='+')
{
i++;
p+=inmultire();
}
else
{
i++;
p-=inmultire();
}
}
return p;
}
int inmultire()
{
int p=anamere();
while(j[i]=='*' || j[i]=='/')
{
if(j[i]=='*')
{
i++;
p*=anamere();
}
else
{
i++;
p/=anamere();
}
}
return p;
}
int anamere()
{
int p=0;
if (j[i]=='('){
i++;
p=rezolv();
i++;
}
else while (isdigit(j[i])) p=p*10+j[i++]-'0';
return p;
}
int main()
{
citire(j);
fout<<rezolv();
return 0;
}