我做了一个表达式求值器,我想添加一个参数...说我可以计算:(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;
}