用一道简单的例题,带你彻底搞懂函数嵌套,保姆级教学

输入4个整数,找出其中做大的数,用函数的嵌套调用来处理

解题思路:

  1. 在main函数中调用max4函数,找出最大的数;
  2. 在max4函数中再次调用max2函数,找出最大值;
  3. 返回到main函数中,在main函数中输出最大值的结果
#include<stdio.h>
int main()
{
	int max4(int a, int b, int c, int d);//对max4的函数声明
	int a, b, c, d, max;
	printf("please enter 4 integer numbers:");//提示输入4个数
	scanf("%d %d %d %d", &a, &b, &c, &d);//输入4个数
	max = max4(a, b, c, d);//调用max函数,返回最大值
	printf("max=%d\n", max);//输入最大值
	return 0;
}
int max4(int a, int b, int c, int d)//定义max4函数
{
	int max2(int a, int b);//对max2的函数声明
	int m;
	m = max2(a,b);//调用max2函数,得到a和b两个数中的最大值,放在m中
	m = max2(m,c );//调用max2函数,得到a,b,c三个数中的最大值,放在m中
	m = max2(m,d );//调用max2函数,得到a,b,c,d四个数中的最大值,放在m中
	return m;//把m作为函数值返回main函数
}
int max2(int a, int b)//定义max2函数
{
	if (a >= b)
		return a;//若a>=b,将a为函数返回值
	else
		return b;//若a<b,将b为函数返回值
}

程序改进

可以将max2函数的函数体改为只用一个return语句,返回一个条件表达式的值

int max2(int a, int b)//定义max2函数
{
	return (a >= b ? a : b);
}

将max4函数中,3个调用max2的语句用以下代码代替

int max4(int a, int b, int c, int d)//定义max4函数
{
	int max2(int a, int b);
		return max2(max2(max2(a, b), c), d);
}

先调用max2(a,b),得到a和b的最大值,再调用max(max(a,b),c),得到a,b,c中的最大值,最后由max2(max2(max(a,b),c),d);求得a,b,c,d中的最大值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值