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(ac){
				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

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

你可能感兴趣的:(小练习)