递归函数中减运算问题



  • 请教各位老师,如下函数构建了一个递归函数,我发现在进行减运算过程中,输入minus 1.0 2.0三个字符串,读这个程序应该是-1,但是为什么输出结果是1?感觉是从右到左进行运算的,但是为什么是这样呢?C++的减运算就是从左到右的啊,也没查到说递归函数会改变这一点,难道是因为数据的储存么?涉及到压栈?
    屏幕截图 2021-05-02 155307.png



  • 是我没有解释清楚么?这里的genotype[i]就是输入的字符,因此minus 1.0 2.0 对应三个字符串,从i=0开始,对应minus, i++变为1, 返回第一个递归函数evalGeno对应的i=1,也就是进入else, i++ 为2,numValue为1.0,继续减号,然后到第二个递归evalGeno,此时i为2,所以按程序流程就是1-2,但是程序测试结果是2-1的结果,为什么会这样呢?请各位老师指点一下


Log in to reply
 


CFD中文网 | 东岳流体学术 | 东岳流体商业 | 吉ICP备20003622号-1