Pagini recente » Cod sursa (job #1991230) | Cod sursa (job #3280638) | Cod sursa (job #2880997) | Cod sursa (job #2546798) | Cod sursa (job #2490328)
#include <iostream>
#include <fstream>
using namespace std;
const int maxn=1001;
double plus_min(char [],int &);
double paran(char expr[],int &k){
if(expr[k]=='('){
++k;
double ret=plus_min(expr,k);
++k;
return ret;
}
return expr[k++]-'0';
}
double inm_imp(char expr[],int &k){
double ret=paran(expr,k);
while(expr[k]=='*'||expr[k]=='/'){
if(expr[k++]=='*')ret*=paran(expr,k);
else ret/=paran(expr,k);
}
return ret;
}
double plus_min(char expr[],int &k){
double ret=inm_imp(expr,k);
while(expr[k]=='+'||expr[k]=='-'){
if(expr[k++]=='+')ret+=paran(expr,k);
else ret-=paran(expr,k);
}
return ret;
}
int main()
{
char expr[maxn];
ifstream in("hatz.in");
in>>expr;
in.close();
int k=0;
ofstream out("hatz.out");
out<<plus_min(expr,k);
out.close();
return 0;
}