首页 > 其他 > 详细

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

时间:2018-03-24 13:22:46      阅读:478      评论:0      收藏:0      [点我收藏+]

/* 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\n",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); //把函数调用作为函数参数
}

 

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

原文:https://www.cnblogs.com/ddhdd/p/8638475.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!