已采纳回答 / 慕粉004404296
因为 递归 是从 函数开始调用自己 那句语句开始进入下一层的 一直到递归结束语句为止 都不会执行下面的语句(自我调用下面的语句) 当执行到递归结束语句时 他会返回一个值给上一层 然后上一层才会向下执行 直到遇到返回值又返回给上一层 如此循环 所以如果你的打印语句放在他自我调用的语句下面的话他就会从最下面那层开始打印 比如第一层是10 最下面一层是1 那它就会从最下面那层(1)开始打印 如果你的打印语句在自我调用的语句上面的话就在第一层开始打印(10)
2017-12-09
已采纳回答 / 慕粉6281325
把if(i = a*a*a+b*b*b+c*c*c)改成if(i == a*a*a+b*b*b+c*c*c)就可以了。因为“=”是赋值,“==”是判断是否等价,于是:第一次(i=100,a=1,b=c=0,if中(i=1*1*1+0*0*0+0*0*0),即i为1(非0),执行printf输出i此时的值(1)之后i加1,所以第二次(i=2,a=2,b=c=0,if中(i=2*2*2+0*0*0+0*0*0),即i为8(非0),执行printf输出i此时的值(8) 之后i加1,所以第三次(i=9,a=9,b...
2017-12-07