带参数的数学表达式评估器

时间:2017-05-28 08:18:48

标签: c++

我做了一个表达式求值器,我想添加一个参数...说我可以计算:(1 + 1)* 13 = 26但是如果x取值,那么(1 + 1)* x会是什么样子在定义的时间间隔内。 这是我的代码:

int eval(int a, int b, char o)
{
    switch(o)
    {
        case '+': return a + b;
        case '-': return a - b;
        case '*': return a * b;
        case '/': return a / b;
    }
}

int expr(int lev)
{
    int x, y;
    if(lev == LMax)
        if(*p == '(')
            ++p, x = expr(0), ++p;
        else
        {
            for(x = 0; *p >= '0' && *p <= '9'; ++p)
                x = x * 10 + *p - '0';
        }
    else
    {
        for(x = expr(lev + 1); strchr(op[lev], *p); x = y)
            y = eval(x, expr(lev + 1), *p++);
    }
    return x;
}

0 个答案:

没有答案