C++ 带参数的数学表达式求值器

C++ 带参数的数学表达式求值器,c++,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 '/': r

我做了一个表达式计算器,我想给它添加一个参数。。。假设我可以计算:(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;
}
int eval(int a、int b、char o)
{
开关(o)
{
案例“+”:返回a+b;
案例'-':返回a-b;
案例“*”:返回a*b;
案例“/”:返回a/b;
}
}
int expr(int lev)
{
int x,y;
如果(lev==LMax)
如果(*p=='(')
++p、 x=expr(0),+p;
其他的
{

对于(x=0;*p>='0'&&&*p,那么您的实际问题是什么?如何添加参数,以便我的代码仍能理解表达式哪个参数?您尝试了什么?您在哪里遇到了问题?如果您的问题是“请为我编写表达式计算器”你在这里可能不会有太多的运气。@Rook dude,我的评估器工作。我所要问的是如何让它理解“x”在表达式中…我是否必须执行多次x取值的相同表达式?通常,您需要在定义的时间间隔内对多个x值的表达式求值,以便获得和了解y值绘图的“形状”。