简单递归求问
#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),这就是栈的入口。