Pagini recente » Cod sursa (job #2208863) | Cod sursa (job #377663) | Cod sursa (job #2870522) | Cod sursa (job #959356) | Cod sursa (job #640153)
Cod sursa(job #640153)
#include<fstream>
using namespace std;
char s[100005]; int i=0;
int termen();
int factor();
int eval(){
int v=termen();
while(s[i]=='+' || s[i]=='-'){
if(s[i]=='+'){ ++i; v+=termen(); } else { ++i; v-=termen(); } }
return v;
}
int termen(){
int v=factor();
while(s[i]=='*' || s[i]=='/'){
if(s[i]=='*'){ ++i; v*=factor(); }else { ++i; v/=factor(); } }
return v;
}
int factor(){
int v=0;
if(s[i]=='('){ ++i; v=eval(); ++i; }
else while(s[i]>='0' && s[i]<='9'){ v=(v*10)+s[i]-'0'; ++i; }
return v;
}
int main(void){
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
fin>>s;
fout<<eval();
fin.close(); fout.close();
return 0;
}