Pagini recente » Cod sursa (job #1243505) | Cod sursa (job #2294735) | Cod sursa (job #1766995) | Cod sursa (job #2860649) | Cod sursa (job #3170370)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
int add();
int mult();
int fact();
int poz;
char s[100005];
int fact()
{
int x=0;
if(s[poz]=='(')
{
poz++;
x=add();
poz++;
}
else while(poz<strlen(s) &&(s[poz]>='0' && s[poz]<='9'))
{
x=x*10 +s[poz]-'0';
poz++;
}
return x;
}
int mult()
{
int res=fact();
while(poz<strlen(s) && (s[poz]=='*' || s[poz]=='/'))
{
if(s[poz]=='*')
{
poz++;
res*=fact();
}
else
{
++poz;
res/=fact();
}
}
return res;
}
int add()
{
int res=mult();
while(s[poz]=='+')
{
if(s[poz]=='+')
{
++poz;
res+=mult();
}
else
{
++poz;
res-=mult();
}
}
return res;
}
int main()
{ fin>>s;
fout<<add();
return 0;
}