麻烦大家,为什么输出2 ,6,24,120??

[复制链接]
查看11 | 回复2 | 2010-8-13 15:54:17 | 显示全部楼层 |阅读模式
#include
int fun (int k)
{
int x,y;

y=k;

for (x=1;x<=(k-1);x++)

y*=k-x;

return y;

}

voidmain()

{int n;

for (n=1; n<=5;n++)

cout << fun(n) <<" ";

cout << endl;
}

回复

使用道具 举报

千问 | 2010-8-13 15:54:17 | 显示全部楼层
比如从主函数的n=1开始,执行fun(n),进函数;y=k=1;循环不执行,因为k-1=0;不满足循环条件,循环退出。return y;所以第一个输出为1;第二次调用函数fun(2),y=2;for循环执行一次;y*=k-x的意思是y=y*(k-x);所以y=2;然后return y,所以输出2;剩下的四个数据都一样的循环,自己推敲吧。
回复

使用道具 举报

千问 | 2010-8-13 15:54:17 | 显示全部楼层
按照你的程序走下去就是这个结果啊,那你原来是想他输出什么的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行