递归问题:编译没问题,一运行就堆栈溢出,求大神指导~~

#include<iostream>usingnamespacestd;intACK(inta,intb,intc){if(a=0)returnb+1;elseif(c=... #include <iostream>

using namespace std;

int ACK(int a,int b,int c)
{
if(a=0) return b+1;
else if(c=0)
{
if(a=1) return b;
else if(a=2) return 0;
else if(a=3) return 1;
else if(a>=4) return 2;
}
else return ACK(a-1,ACK(a,b,c-1),b);
}

void main()
{
int a,b,c,y;

cout<<"请输入变量值:\n";
cout<<"a:";cin>>a;
cout<<"b:";cin>>b;
cout<<"c:";cin>>c;
y=ACK(a,b,c);
cout<<"ACK("<<a<<','<<b<<','<<c<<")="<<y<<'\n';
}
展开
 我来答
haiyaojing
2013-05-22 · 超过37用户采纳过TA的回答
知道答主
回答量:160
采纳率:0%
帮助的人:109万
展开全部

你试试

int k=0;
int ACK(int a,int b,int c)
{
    cout<<++k<<" a:"<<a<<" b:"<<b<<" c:"<<c<<endl;
    if(a=0) return b+1;
    else if(c=0)
    {
        if(a=1) return b;
        else if(a=2) return 0;
        else if(a=3) return 1;
        else if(a>=4) return 2;
    }
    else return ACK(a-1,ACK(a,b,c-1),b);
}

就知道问题了

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式