以一种简单的算法对3个数进行排序
package com.chinasofti.xunhuan;
import java.util.Scanner;
public class peixuwenti {
/**
* 输入三个数字,然后按照从大到小的顺序输出
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int i,j,k;
Scanner scan = new Scanner(System.in);
Scanner scan1 = new Scanner(System.in);
Scanner scan2 = new Scanner(System.in);
System.out.println("请输入第一位数:");
i = scan.nextInt();
System.out.println("请输入第一位数:");
j = scan1.nextInt();
System.out.println("请输入第一位数:");
k = scan2.nextInt();
int max = i>j ? (i>k ? i : k) : (j>k ? j:k);
int min = i<j ?(i<k? i:k): (j<k? j:k);
int middle = 0 ;
if(max != i && min != i){//如果第1个变量i中的值不是最大值也不是最小值,则它一定是中间值
middle = i;
}
if(max != j && min != j){
middle = j;
}
if(max != k && min != k){
middle = k;
}
System.out.println(max+">"+middle+">"+min);
}
}
**思路主要是输入3个数字后,先求出最大数,在求出最小数,然后求出中间的一个数
使用了**
3个数中判断最大数和最小数很容易,使用三目运算符:
表达式1 ? 表达式2:表达式3
如果表达式1条件成立,则执行表达式2的值,否则执行表达式3的值
所以先判断第一个变量i是否大于第二个变量j,如果条件成立,则表示i是较大的,然后去判断i和k的比较,最后即可得出最大数(最小数也是这样得出来的),中间数是这样得出的。如下
既然三个数中已经判断出了最大数和最小数,中间数就用if语句,假设i是最大数,那 它什么也不干,if里面加一条空语句即可。假设i是最小数,那它也是什么都不干,依然加一条空语句,如果上面两个条件都不满足,则这个数肯定是中间数,提取出中间数即可!