菜鸟的问题
#include<iostream.h><BR>int fun(int n)<BR>{<BR> if(n++==4)<BR> return ++n;<BR> return n*fun(++n); <BR>}<BR>void main()<BR>{<BR> int i=0;<BR> int sum=fun(i);<BR> cout<<sum<<endl;<BR>}<BR>我真搞不明白输出的居然是48哦,<BR>真的不懂啊。<BR>谁肯一步步告诉我这个程序的执行过程,<BR>谢谢[em06][em09][em06][em09][em06][em09] return n*fun(++n)一直使用跌贷方法,一直在调用int fun()函数,知道n=4的时候,所以会输出48 对,楼上说得对,当n++不等于4的时候,return n*fun(++n)将会一直调用int fun()函数,一直要到n++等于4,然后才会执行到++n #include<iostream.h><BR>int fun(int n)<BR>{<BR> if(n++==4)<BR> return ++n;<BR> return n*fun(n++); //++n改为n++,结果就为720了(6*5*4*3*2=720) <BR>}<BR>void main()<BR>{<BR> int i=0;<BR> int sum=fun(i);<BR> cout<<sum<<endl;<BR>}<BR>这样改一改之后结果大不一样了。页:
[1]
