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


    /* p183 例7.5 输出4个整数,找出其中最大的数。用函数嵌套调用来处理

    解题思路:这个问题并不复杂,完全可以只用一个主函数就可以得到结果。在main函数中调用max4函数,
    max4函数的作用是找出4个数中的最大者。在max4函数中再调用另一个函数max2。max2函数用来找出两个
    数中的大者。在max4中通过多次调用max2函数,可以找出4个数中的大者,然后把它作为函数值返回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:");//提示输入四个数
      scanf("%d %d %d %d",&a,&b,&c,&d); //输入四个数
      max = max4(a, b, c, d); //调用max4函数,得到4个数中的最大者
      printf("max = %d ",max); //输出4个数中的最大者
      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作为函数返回值

    }

    运行结果:

    程序改进:

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

    int max2(int a, int b) //定义max2函数
    {
      return(a >= b ? a:b); //返回条件表达式的值,即a和b中的大者

    }

    (2) 在max4函数中,3个调用max2的语句(如m=max2(a,b);)可以用以下一行代替:

      m=max2(max2(max2(a,b),c),d);  //把函数调用作为函数参数

    甚至可以取消变量m,max4可写成

    int max4(int a,int b,int c,int d) //定义max4函数
    {
      int max2(int a, int b); //对max2的函数声明
      return max2(max2(max2(a,b),c),d); //把函数调用作为函数参数
    }

  • 相关阅读:
    git 使用规范
    备忘 Sim联合Python仿真接口
    HMM 隐马尔可夫模型 MATLAB
    Smoothed Zscore Algorithm 数据异常点算法
    服务器部署备忘
    关于string的indexof方法的试验
    关于命令模式的一些理解
    关于字符串效率问题
    随记一下 关于域用户的AD验证
    关于异步委托的部分理解
  • 原文地址:https://www.cnblogs.com/ddhdd/p/8638475.html
Copyright © 2020-2023  润新知