Pagini recente » Cod sursa (job #1593064) | Cod sursa (job #572273) | Cod sursa (job #1847431) | Cod sursa (job #1684104) | Cod sursa (job #1159928)
#include <iostream>
#include<fstream>
#include<cstring>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
unsigned char s[100005],i;
int termen();
int factor();
int eval()
{
int v=termen();
while (s[i]=='+' || s[i]=='-') {
if (s[i]=='+') { i++; v+=termen();}
else { i++ ; v-=termen();};
}
return v;
}
int termen()
{
int v=factor();
while (s[i] =='*' || s[i]=='/') {
if (s[i]=='*') {i++; v*=factor();}
else {i++; v/=factor();}
}
return v;
}
int factor()
{
int v=0;
if (s[i]=='(') {i++; v=eval(); i++;}
else {
while (s[i]>='0' && s[i]<='9') {
v=v*10+(int)(s[i]-'0');
i++;}
};
return v;
};
int main()
{
fin>>s;
//strcat(s[],"#");
i=0;
fout<<eval();
fin.close();
fout.close();
}