Cod sursa(job #2490328)

Utilizator tryharderulbrebenel mihnea stefan tryharderul Data 10 noiembrie 2019 09:37:27
Problema Evaluarea unei expresii Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#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;
}