四个数比较大小(递归解法)

今天在群里水的时候,看到有的同学提到这个问题,然后我就在电脑上自己敲了一遍。

下面说一下我的解题思路:

首先这个题目就是简单的最值问题。这个问题一般的话有两个思路:

1、定义一个数为最值,然后与其余的数进行比较然后比较,找出最值。

   2、对所有的数进行排序,然后从排序好的数里面就可以找到最值。当然排序的方法有很多

   最简单的就是利用C++的STL调用sort函数或者qsort进行排序。

   总的来说这两种方法的实质就是数之间的比较,然后来回的赋值。然后就可以找到最大的值。


解题要点:

 就这道题来说,用递归的解法与上述的解法的实质也是一样的,也需要进行比较与赋值。

 我的解题方法:就是默认第一个数是最大(小)值,然后让第一个与其余的比较,将大的值赋值给第一个数,

 继续进行比较。当一个数比其他数都大时结束递归。返回的第一个数,就是最大(小)值。


下面是我的代码:

    

#include<stdio.h>
int max(int a,int b,int c,int d);
int main()
{
	int a,b,c,d;
	while(scanf("%d%d%d%d",&a,&b,&c,&d)!=EOF)
		printf("%d\n",max(a,b,c,d));
}
int max(int a,int b,int c,int d)
{
	int number=a;
	if(number>=b&&number>=c&&number>=d)
	{
		return number;
	}
	else
	{
		if(number<b) max(b,b,c,d);
		else if(number<c) max(c,b,c,d);
		else max(d,b,c,d);
	}
}


    原文作者:JamesLi6
    原文地址: https://blog.csdn.net/JamesLi6/article/details/79452733
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞