gpt4 book ai didi

c++ - 递归返回意外输出

转载 作者:行者123 更新时间:2023-11-30 02:40:32 24 4
gpt4 key购买 nike

我从 test(2,8) 开始

我认为输出应该是 4 7相反,我得到 6 6 4 7因为 p1 = p2 即 6 = 6 不应执行 cout 语句。为什么我会看到 6 6 ?

 using namespace std;

void test(int p1, int p2);

void main()
{
test(2, 8);
return ;
}


void test(int p1, int p2)
{
if (p1 != p2)
{
p1 = p1 + 2;
p2 = p2 - 1;
test(p1, p2);
cout << p1;
cout << p2;
}
}

最佳答案

第一次调用测试 p1 变成 4 而 p2 变成 7。但是在打印之前我们再次进入递归,这次 p1 变成6 并且 p2 也变为 6。我们再次调用递归,但由于 p1p2 相同,它返回时不打印任何内容(不进入 if 条件).然后它打印 6 6,当它返回到最上层调用测试函数时,它打印 4 7。所以输出是 6 6 4 7。

关于c++ - 递归返回意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28845846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com