第1个回答 2015-08-11
for循环中有三部分: if (z>0),else if (z==0),else
第一部分功能是尝试 i+(i+1)+(i+2)+……看能否刚好等于输入值,(i第一次取值为1,从1开始)
等于 就进入第二部分:输出结果
不等于 就进入第三部分:i加一个后,再回到第一部分,从新开始尝试,
【错误原因】
因为i第一次在第三部分取2后,回到 for (;i<=x&&i>0;i++)又自加了一次,
所以,第二次尝试是从3开始了,而不是2,
只需要把第三部分中 y=y+1; i=y;先后顺序调换一下就可以了
虽然有点罗嗦,但能看懂吧!!!本回答被网友采纳