注册 登录
编程论坛 C++教室

为何没有输出结果?

明次 发布于 2009-07-31 13:52, 517 次点击
程序代码:
#include <iostream>
using namespace std;

int w=3;
int fun(int);
void main()
{
    int w=10;
    cout<<fun(5)*w<<endl;
}
int fun(int k)
{
    return fun(k-1)*k;
}

为什么这段代码运行时没有输出结果?我听CSDN的人说是没有递归结束条件,那这个“递归结束条件”是什么一东西?<c++ primer plus>这书上有没有这方面相关的知识,有的话告诉我多少页。 谢..
3 回复
#2
yewei8610182009-07-31 14:26
是没有递归结束条件
要有个判断啊 if(k==0 || k==1)
                return 1;
#3
pangding2009-08-01 18:39
回复 楼主 明次
对,每次调用那个fun函数时都去调用fun(k-1)这个函数,什么时候停呢?也就是没有结束的条件。递归函数在写的时候一定要有一个基本情况,c++ primer plus 这书讲递归的时候肯定说了,你再去查查~
#4
明次2009-08-01 20:51
明白了,谢谢大家。
1