Pagini recente » Cod sursa (job #2126268) | Cod sursa (job #2743473) | Cod sursa (job #2302663) | Cod sursa (job #900438) | Cod sursa (job #1910802)
#include<fstream>
using namespace std;
ifstream f ("evaluare.in");
ofstream g ("evaluare.out");
int i=0;
char s[100001];
int eval();
int termen();
int fact();
int eval(){
int r=termen();
while(s[i]=='+'||s[i]=='-'){
if(s[i]=='+'){
i++,r=r+termen();
}
else i++,r=r-termen();
}
return r;
}
int termen(){
int r=fact();
while(s[i]=='*'||s[i]=='/'){
if(s[i]=='*'){
i++;
r=r*fact();
}
else i++,r=r/fact();
}
return r;
}
int fact(){
int r=0;
if(s[i]=='('){
++i,r=eval(),++i;
}
while(s[i]<='9'&&s[i]>='0'){
r=r*10+s[i]-'0',++i;
}
return r;
}
int main()
{
f.getline(s,100001);
i=0;
g<<eval();
}