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

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

█ 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值