输入4个整数,找出其中最大的数,用一个函数来实现

函数的嵌套调用:

        C++不允许对函数作嵌套定义,也就是说在一个函数中不能完整地包含另一个函数。

        在一个程序中每一个函数的定义都是互相平行和独立的,如
        void f1()  {...}
        int    f2()  {...}
        float f3()  {...}
        long f4()  {...}
        虽然C++不能嵌套定义函数,但可以嵌套调用函数,也就是说,在调用一个函数的过程中,又调用另一个函数。
        在程序中实现函数嵌套调用时,需要注意的是:在调用函数之前,需要对每一个被调用的函数作声明(除非定义在前,调用在后)。

解题思路:

        根据题目的要求,可以定义一个函数max_4来实现从4个数中找出最大的数。前面已知,用max函数可以很方便地找出两个数中的大者。因此考虑能否通过调用max函数来实现从4个数中找出最大数呢?结论是可以的。先用 max(a,b)找出a和b中的大者,赋给变量m。再用max(m,c)函数求出a,b,c三者中的大者,再赋给m(因为m是a和b 中的大者,因此max(m,c)就是a,b,c三者中的大者),把它赋给m。再用max(m,d)求出a,b,c,d四者中的大者,它就是a,b,c,d4个数中的最大数。
        在max_4函数中调用3次max函数,就求出4个数中的最大数。最后在主函数中输出结果。

编写程序:

运行结果:

程序分析:

        在主函数中要调用max_4函数,因此在主函数的开头要对max_4函数作声明。在max_4函数中3次调用max函数(这是嵌套调用),因此在max_4函数的开头要对max函数作声明。由于在主函数中没有直接调用max函数,因此在主函数中不必对max函数作声明,只须在max_4函数中作声明即可。
        max_4函数执行过程是这样的:第1次调用max函数得到的函数值是a和b中的大者,把它赋给变量m,第2次调用max(m,c)得到m和c的大者,也就是a,b,c中的最大数,再把它赋给变量m。第3次调用max(m,d)得到m和d的大者,也就是a,b,c,d中的最大数,再把它赋给变量m。这是一种递推方法,求出两个数的大者;再以此为基础求出3个数的大者;再以此为基础求出4个数的大者。m的值一次一次地变化,直到实现最终要求。
        max函数的函数体可以只用一个return语句,返回一个条件表达式的值:
        {retum(x>y? x: y);}
        本例是一次嵌套调用,有些较复杂的问题可以用多层嵌套调用。

  • 19
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值