读书人

简略递归求问

发布时间: 2013-01-04 10:04:13 作者: rapoo

简单递归求问


#include <iostream>
using namespace std;
void output (int);
int main()
{
int n=10;
return 0;
}

void output (int n)
{
if(n==1)
cout<<1;

output(n-1);
}


为什么这么做不会反序输出10 9 8 7 6 5 4 3 2 1呢?
[解决办法]
引用:
先谢谢你进来。
但是我没能明白你的意思,并且你的代码有问题。

output(n)调用output(n-1),但是output(n-1)便没给output(n)传值
[解决办法]
Sorry ,应该是这个

#include<iostream>
using namespace std;
void output(int n){
cout<<n;
if(1==n) return;
cout<<" ";
output(n-1);
}
int main(){
output(10);
return 0;
}

[解决办法]
首先,main()没有调用output() .其次output()递归到1后后面回归n参数值时,output(n-1)后面没有其他的语句,所以没其他执行内容。把他理解成栈,在output(n-1),这就是栈的入口。

读书人网 >C++

热点推荐