24小时热门版块排行榜    

查看: 343  |  回复: 1

倒计时

新虫 (初入文坛)

[求助] 求助一段小代码

#include<iostream.h>
void inv(int n)
{
        int i;
        cin>>i;
        if(n>1)
               
                inv(n-1);
         else
            cout<<"----the result----"<<endl;
cout<<i<<" ";
}
void main()
{
        cout<<"input 10 integers"<<endl;
        inv(10);
        cout<<endl;
}
问下,为什么上面的能实现反序输出。可以的话,能不能解释下每句的含义。尤其是inv函数那段,谢谢了。(c++环境中)
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

尘埃天使

铜虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2013-10-30 13:50:52
倒计时: 金币+5, ★★★很有帮助 2013-10-31 08:19:30
//首先,这是一个典型的问题,建议你可以好好地把递归看看。
#include<iostream>
using namespace std;
void inv(int n)
{
        int i;
        cin>>i;//这是是让你从屏幕上输入数字。
        if(n>1)
               
                inv(n-1);//这里是最关键的,只要n不小于等于1就不会执行输出语句。
         else
            cout<<"----the result----"<<endl;
cout<<i<<" ";
/*需要注意的是这个输出语句不是属于if结构中的。比如当n=2时执行inv(2),此时你会输入一个数字,
比如为i=1,继续执行此时执行inv(1),你输入i=2,注意此时的i和刚才的i=1是用两个不同的内存空间。
然后继续执行程序,执行inv(1)中的输出语句,输出2.但是由于上一层的inv(2)还有个输出语句没有执行
所以去执行这个语句喽,输出1.不管n的值为多少,以此类推。*/
}
void main()
{
        cout<<"input 10 integers"<<endl;
        inv(10);//这里的10是表示10个数
        cout<<endl;
}
希望对你有帮助。
2楼2013-10-30 10:06:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 倒计时 的主题更新
信息提示
请填处理意见