首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

简略递归求问

2013-01-04 
简单递归求问#include iostreamusing namespace stdvoid output (int)int main(){int n10return 0}

简单递归求问


#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),这就是栈的入口。

热点排行