Pagini recente » Cod sursa (job #2026539) | Cod sursa (job #1605331) | Cod sursa (job #2077238) | Cod sursa (job #2042579) | Cod sursa (job #2174484)
#include <bits/stdc++.h>
const int MAX_L = 100005;
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char s[MAX_L];
int i;
int adunare();
int inmultire();
int expresie();
int adunare()
{
int val=inmultire();
while(s[i]=='+' || s[i]=='-') {
i++;
if(s[i-1]=='+')
val+=inmultire();
else
val-=inmultire();
}
return val;
}
int inmultire()
{
int val=expresie();
while(s[i]=='*' || s[i]=='/') {
i++;
if(s[i-1]=='*')
val*=expresie();
else
val/=expresie();
}
return val;
}
int expresie()
{
int val=0;
if(s[i]=='(') {
i++;
val=adunare();
i++;
return val;
}
while(s[i]>='0' && s[i]<='9') {
val=val*10+s[i]-'0';
i++;
}
return val;
}
int main()
{
fin>>s;
fout<<adunare();
return 0;
}