Pagini recente » Cod sursa (job #648670) | Cod sursa (job #321301) | Cod sursa (job #3210058) | Cod sursa (job #1532663) | Cod sursa (job #1722558)
#include <fstream>
#include <string.h>
#include <iostream>
#define DIM 100005
using namespace std;
char s[DIM];
int p,len;
int getTerm();
int getFact();
int eval() {
int ans=0;
while(p<len&&s[p-1]!=')')
ans+=getTerm(),p++;
return ans;
}
int getTerm() {
int term=getFact();
while(s[p]=='*'||s[p]=='/') {
p++;
if(s[p-1]=='*')
term*=getFact();
else
term/=getFact();
}
return term;
}
int getFact() {
if(s[p]=='(') {
p++;
return eval();
}
int fact=0;
while(s[p]>='0'&&s[p]<='9')
fact=fact*10+(s[p]-'0'),p++;
return fact;
}
int main()
{
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
fin.getline(s,DIM);
len=strlen(s);
fout<<eval();
return 0;
}