Pagini recente » Cod sursa (job #1730474) | Cod sursa (job #29028) | Cod sursa (job #2578652) | Cod sursa (job #2978134) | Cod sursa (job #1829034)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
int N, i;
char V[100100];
int expresie();
int termen();
int factor();
int expresie() {
int r=termen();
while (V[i]=='+'||V[i]=='-') {
i++;
if(V[i-1]=='+')
r+=termen();
else
r-=termen();
}
return r;
}
int termen() {
int r=factor();
while(V[i]=='*'||V[i]=='/') {
i++;
if(V[i-1]=='/')
r/=factor();
else
r*=factor();
}
return r;
}
int factor() {
int r;
if (V[i]=='(') {
i++;
r=expresie();
i++;
} else {
r=0;
while(V[i]>='0'&&V[i]<='9') {
r=r*10+V[i]-'0';
i++;
}
}
return r;
}
int main() {
fin>>V+1;
N=strlen(V+1);
i=1;
fout<<expresie();
return 0;
}