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

例1:C++中不允许对函数作嵌套定义,但是可以对函数作嵌套调用!

#include<iostream> 
#include<iomanip>
#include<cmath>
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;
}

运行结果如图:
在这里插入图片描述
例2:求n!

#include<iostream> 
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!运行效果如图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值