代码 import java.util.Arrays; import java.util.Scanner; /** * 只有中位数可能出现分数,所以要先确定好最大值和最小值,然后再根据中位数是否是分数来输出 */ public class Main { public static void main(String[] args){ Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] a = new int[n]; for(int i = 0; i < n; i++){ a[i] = in.nextInt(); } in.close(); Arrays.sort(a); double mid; if(n % 2 == 0){ // 个数为偶数,中位数为中间两个元素的平均值 if((a[n/2] + a[n/2 - 1]) % 2 == 0){ // 中位数为整数 mid = (a[n/2] + a[n/2 - 1]) / 2.0; System.out.printf("%d %.0f %d", a[n-1], mid, a[0]); // 中位数为整数时,不输出小数点后面的数 }else{ // 中位数为分数 mid = (a[n/2] + a[n/2 - 1]) / 2.0 + 0.5; System.out.printf("%d %.1f %d", a[n-1], mid, a[0]); // 中位数为分数时,四舍五入后输出小数点后面一位数 } }else{// 个数为奇数,中位数为数组元素中间的那一个元素,中位数为整数 mid = a[n/2]; System.out.printf("%d %.0f %d", a[n-1], mid, a[0]); // 中位数为整数时,不输出小数点后面的数 } } }