Pagini recente » Cod sursa (job #348800) | Cod sursa (job #99429) | Cod sursa (job #1805525) | Cod sursa (job #2914254) | Cod sursa (job #2501760)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
void citire(char s[1000010])
{
fin.getline(s,1000010);
}
char j[1000010],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;
}