阅读程序写结果:
#include<iostream>
using namespace std;
void foo(int a, int b, int c)
{
if(a > b)
foo(c, a, b);
else
cout<<a<<','<<b<<','<<c<<endl;
}
int main()
{
int a, b, c;
cin >> a >> b >> c;
foo(a, b, c);
return 0;
}输入: 3 1 2
看到 a>b 递归,否则输出 → 模拟两层调用
易把 foo(c,a,b) 误记为交换 a,b;误以为会无限递归或输出全局有序
考点:递归函数执行流程模拟
输入三个整数 a,b,c,调用 foo(a,b,c)。若 a>b 则递归调用 foo(c,a,b),否则直接输出当前 a,b,c 并返回。