C++学习之函数的嵌套调用和用递归法求n!(谭浩强)

例1:C++中不允许对函数作嵌套定义,但是可以对函数作嵌套调用!
#include
#include
#include
using namespace std;
int main()
{
int max_4(int a, int b, int c, int d);
int a, b, c, d, max;
cout << “please enter 4interger numbers:” << endl;
cin >> a >> b >> c >> d;
max = max_4(a, b, c, d);
cout << “max=\n” << max << endl;
return 0;
}
int max_4(int a, int b, int c, int d)
{
int max(int, int);
int m;
m = max(a, b);
m = max(m, c);
m = max(m, d);
return (m);

}
int max(int x, int y)
{
if (x > y)
return x;
else
return y;
}
运行结果如图:
C++学习之函数的嵌套调用和用递归法求n!(谭浩强)
例2:求n!
#include
using namespace std;
long fac(int); //函数声明只有参数类型中未包括参数名
int main()
{
int n;
long y;
cout << “please input an integer:”;
cin >> n;
y = fac(n);
cout << n << “!=” << y << endl;
return 0;
}
long fac(int n) //函数定义中必须包括参数类型和参数名
{
long f;
if (n < 0)
{
cout << “n<0,data error!” << endl;
f = -1;
}
else if (n == 0||n == 1)f = 1;
else f = fac(n - 1)*n;
return f;
}
![递归法求n!运行效果如图:
C++学习之函数的嵌套调用和用递归法求n!(谭浩强)