Pagini recente » Cod sursa (job #1426288) | Cod sursa (job #2408418) | Cod sursa (job #2583203) | Cod sursa (job #2869965) | Cod sursa (job #818859)
Cod sursa(job #818859)
#include<fstream>
#include<string.h>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int expresie(), factor(), termen();
char s[100001];
int i;
int main()
{
f>>s;
i=0;
g<<expresie();
return 0;
}
int expresie(){
int r=termen();
while(s[i]=='+'||s[i]=='-')
{
i++;
if(s[i-1]=='+')
r+=termen();
else
r-=termen();
}
return r;
}
int termen(){
int p=factor();
while(s[i]=='*'||s[i]=='/')
{
i++;
if(s[i-1]=='*')
p*=factor();
else
p/=factor();
}
return p;
}
int factor(){
int q;
if(s[i]=='('){
i++;//sar (
q=expresie();
i++;//sar )
} else {
q=0;
while(s[i]>='0'&&s[i]<='9')
{
q=q*10+s[i]-'0';
i++;
}
}
return q;
}