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

这个程序一直运作下去,会不会让人大吃一惊

2013-07-04 
这个程序一直运行下去,会不会让人大吃一惊?[解决办法]哦,学习了,还要用到堆栈的问题。顺便说一句,觉得楼主

这个程序一直运行下去,会不会让人大吃一惊?


[解决办法]
哦,学习了,还要用到堆栈的问题。顺便说一句,觉得楼主会是个美女,有同意的否?

[解决办法]
妹子,鉴定完毕
[解决办法]
 
改成这样:

#include<iostream>
using namespace std;
 
void funA();
void funB();
 
void funA(){
    cout<<"A";
    funB();// 调用可能会优化成跳转,也许可以实现无限循环,这可是尾递归呀!
}

void funB(){ 
    cout<<"B";
    funA();// 调用可能会优化成跳转,也许可以实现无限循环,这可是尾递归呀!
}
int main(){
    funA();
}

[解决办法]
too young too navie!

I‘ll show you something really interesting:


#include <iostream>
using std::cout;
using std::endl;

void mutiply_table(int a, int b)
{
    cout << a << "*" << b  << "=" << a*b << "\t";
    if (1==a && 1==b)
    {
        return;
    }
    else if (a>=b && b>1)
    {
        mutiply_table(a, b-1);


    }
    else
    {
        if (1 == b)
        {
            cout << endl;
        }
        mutiply_table(a-1, a-1);
    }
}

int main(int argc, char *argv[])
{
    mutiply_table(9, 9);
    
    return 0;
}


[解决办法]
犯了“间接递归没有结束条件”的错误而已。

“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出
·会不会导致堆栈溢出



热点排行