【Java学习之代码学习】 Prog11_三数排序问题

来源:互联网 发布:美国pmi数据 编辑:程序博客网 时间:2024/05/24 06:22

这里写图片描述
生活就像是一个大舞台,每个人都在舞台上扮演不同的角色。智者把自己当编导,人生前途由自己掌控,人生故事由自己编排。愚者把自己当观众,总在别人的故事里旅行,成为生命的过客。弱者把自己当作配角,认为自己微乎其微,一生都活在别人的阴影里。强者把自己当主角,努力演出,演绎出人生的精彩篇章。选择扮演什么样的角色,你就会过什么样的人生。新的一天,早安!

█ Java问题:

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

█ 代码贴图:

########################################################

这里写图片描述

########################################################

package test;import java.util.Scanner;/** *  * 题目:输入三个整数x,y,z,请把这三个数由小到大输出。 * 程序分析:我们想办法把最小的数放到x上,先将x与y进行比较, * 如果x>y则将x与y的值进行交换,然后再用x与z进行比较, * 如果x>z则将x与z的值进行交换,这样能使x最小。 *  * Date 11.17 * */public class Prog11三数排序问题 {    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        while (true) {            System.out.println("请输入三个数以\":\"分开:(输入exit退出 )");            String cmd = in.next();            if ("exit".equals(cmd)) {                System.out.println("程序退出~");                break;            }            if (!isNumeric(cmd)) {                System.err.println("输入的格式不符合要求");                continue;            }            String[] numArr = cmd.split(":");            if (numArr.length != 3) {                System.err.println("你输入的内容不够三个数字");                continue;            }            System.out.println("排序结果:"+                    sort(Integer.parseInt(numArr[0]),                            Integer.parseInt(numArr[1]),                             Integer.parseInt(numArr[2])));        }        in.close();    }    /**     * 如果正则不熟,可以通过用ascii码 去判断,这也不失为一个思路     * @param str     * @return     */    private static boolean isNumeric(String str){       for(int i=0;i<str.length();i++){          int chr=str.charAt(i);          if(chr<48 || chr>58)             return false;       }       return true;    }    /**     * 对三个数进行排序     * @param x     * @param y     * @param z     * @return     */    private static String sort(int x, int y, int z) {        String sort = null;        int temp = 0;        //第一步:将x与y进行比较,如果x>y则将x与y的值进行交换;        if (x > y) {            temp = x;            x = y;            y = temp;        }        //第二步:然后再用x与z进行比较,如果x>z则将x与z的值进行交换;x为最小        if (x > z) {            temp = x;            x = z;            z = temp;        }        //第三步:最后将y与z进行比较,再将小的放在y的位置,大的放在z的位置,结束!        if (y > z) {            temp = z;            z = y;            y = temp;        }        sort = x + " " + y + " " + z;        return sort;    }}

大家早安呀!今天星期四啦!努力了才叫梦想,不努力就是空想,你所付出的努力都是这辈子最清晰的时光。加油咩!!

PS :本篇文章内容不是自己写的,是从崔老师发出来的内容中稍微整理后的博客,顶部的贴图来自微信公众号【人民日报】,最后的一段话,是来自王老师、吴老师的心灵鸡汤!
 

█ 相关资料:

1.人民日报 微信公众号

来了!新闻早班车-人民日报 微信公众号
连接:http://mp.weixin.qq.com/s/NMJwVhtrm5a8NAJ1bZXA_g

2.崔老师的建议

在这里面我没有用冒泡的算法,但原理是一样的只比较了三个数。基础弱的同学可以通过这里例子去了解冒泡的算法的原理。在输入的时候,我依次输入了一个字符串,然后进行判断。有同学问怎样判断是否都是数字,是否用正则进行判断。这里在判断是否符合要求的时候我选择了ascii码,ascii码对于正则相对来说比较简单,也是一种方法。当然也可以使用正则,抛出异常不太友好,实在找不到办法也可以去抛异常判断。好了,最后留给你们一个密码,有能力的同学可以破解下!
密码:【73 76 79 86 85】明天等待你们的破译!

PS :本篇文章使用的内容如果涉及到侵权问题、违反相关规则请联系我,立即删除。
  

转载请注明出处:http://blog.csdn.net/ljb568838953/article/details/53444355

0 0
原创粉丝点击