Pagini recente » Cod sursa (job #1217284) | Cod sursa (job #21617) | Cod sursa (job #1410668) | Cod sursa (job #2777619) | Cod sursa (job #3192675)
#include <fstream>
#include <cstring>
#include <ctype.h>
using namespace std;
ifstream in("evaluare.in");
ofstream out("evaluare.out");
char s[100004];
int poz;
int add();
int mult();
int fact();
int add(){
int res=mult();
while(s[poz]=='+' || s[poz]=='-'){
if(s[poz]=='+'){
poz++;
res+=mult();
}
else {
poz++;
res-=mult();
}
}
return res;
}
int mult(){
int res=fact();
while(s[poz]=='*' || s[poz]=='/'){
if(s[poz]=='*'){
poz++;
res*=fact();
}
else {
poz++;
res/=fact();
}
}
return res;
}
int fact(){
int res=0;
if(s[poz]=='('){
poz++;
res=add();
poz++;
}
else {
while(isdigit(s[poz])){
res=res*10+(s[poz]-'0');
poz++;
}
}
return res;
}
int main()
{
in>>s;
out<<add();
return 0;
}