Java中输入三个数按升序输出——妈妈再也不用担心我不会输入三个数排序了

Java中输入三个数按升序输出

题目:输入三个数,并将三个数按照升序输出
最笨但不完整的做法:
if(a>b){
			if(b>c){
				System.out.print(c+" "+b+" "+a);
			}else if (c>b) {
				if (c>a) {
					System.out.print(b+" "+a+" "+c);
				}
				else {
					System.out.print(b+" "+c+" "+a);
				}
			}
		}else if(a<b){
			if(a>c){
				System.out.print(c+" "+a+" "+b);
			}else if (c>a) {
				if (c>b) {
					System.out.print(a+" "+b+" "+c);
				}
				else {
					System.out.print(a+" "+c+" "+b);
				}
			}
		}

进行多次比较,但是有个问题:相等的情况没有考虑,所以还要加代码很麻烦.
改进一下,用交换的方法:

int temp =0;
		if(a>b){
	      temp=a;a=b;b=temp;
		}
	    if(a>c){
	      temp=a;a=c;c=temp;
	          
	    }    
	    if(b>c){
	      temp=b;b=c;c=temp;
	    }
	    System.out.print(a+" "+b+" "+c);
利用三目运算符?:来做:
            int max1=0,mid1=0,min1=0;
		    if(a>b)
		    {
		        max1=a>c?a:c;
		        mid1=b>c?b:c;
		        min1=b>c?c:b;
		    }
		    else
		    {
		        max1=b>c?b:c;
		        mid1=b>c?c:b;
		        min1=a>c?c:a;
		    }
		    System.out.println(min1+" "+mid1+" "+max1);

把最值存起来,而且相等的情况也包括了,很方便,当然首先你得清楚三目运算符?:是怎么回事。

再改进一下:

         int max1=(a>b?a:b)>c? (a>b?a:b):c;
		 int min1=(a<b?a:b)<c? (a<b?a:b):c;
		 int mid1 =(a+b+c)-max-min;
		 System.out.println(min1+" "+mid1+" "+max1);

个人认为这样最好最简洁,清晰明了,妈妈再也不用担心我不会输入三个数排序了。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值