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

Posted ddhdd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输出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\\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个整数,找出其中最大的数。用函数嵌套调用来处理的主要内容,如果未能解决你的问题,请参考以下文章

c语言:用函数的嵌套调用,找4个整数中最大的数。(递推)

C语言 输入4个整数,用函数嵌套调用取出最大值

编写一个C语言程序:输入10个整数,找出其中绝对值最小的数,将它和最后一个数交换,然后输出这10个数。

no.2 函数模板

用c语言编程,从键盘上输入10个整数存放到一维数组中,输出其中最大的数及其对应的数组下标值

用JAVA语言编译:数组中包含n个整数,从其中找出k个最小的数,写出你能想到的最快的方法!!!