三个数字排序问题,按照从小到大的思路排除结果

Posted on 2018-08-07 21:56  豆豆2018  阅读(1250)  评论(0编辑  收藏  举报

 

题目:输入三个整数 x,y,z,请把这三个数由小到大输出。
程序分析:我们想办法把最小的数放到 x 上,先将 x 与 y 进行比较,如果 x>y 则将 x 与 y 的值进行交换,
然后再用 x 与 z 进行比较,如果 x>z 则将 x 与 z 的值进行交换,这样能使 x 最小

package SuanFa;

public class Demo15 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        function(9, 5, 3);

    }
    public static void function(int x ,int y,int z) {
        if (x>y) {
            int value=0;
            value=x;
            x=y;
            y=value;//置换x y 的值 并且找出 x y 之间最小的数x
        }
        if (x>z) {
            int value1=0;
            value1=x;
            x=z;
            z=value1;// 置换 x z的值 保证 x z之间最小值  x
        }
        //至此找到的最小数x ,类比方法 同样找出 yz 之间的最小值
        if (y>z) {
            int value2=0;
            value2=y;
            y=z;
            z=value2;//y  z 之间置换数值 ,保证y 次小
        }
        //多次执行if 直至满足条件后  打印输出x y z
        System.err.println(x+" "+y+" "+z);
        
        
    }

}

这里我是利用if哦多次执行特点,只要满足if 提供的条件,按照顺序可以执行多个If 从而满足条件

x先于y z比较,分别找出二者之间的最小值,然后替换数值,需要重新定义一个新的变量来作为接受值

然后根据相同的方法找到yz 之间最小值 最后打印即可