身高排队(没有运行通过)

实验小学为了强健学生的身体,每天课间都要组织学生在户外学做广播体操。

这一天,五年级三班的所有同学在老师的指引下将队形排成了 MM 行 NN 列。现已知所有同学的身高,数值为整数,单位:厘米。要求在所有同学中:

挑选出每列身高最高的同学作为此列的小队长为同学们带操;
将所有同学按身高从高到低的顺序进行排队;
求出所有同学们的平均身高(要求:四舍五入保留整数);
统计出不小于平均身高的学生人数。
请同学们用计算机编程的方法来解决以上问题。

输入格式

输入共有 M+1M+1 行:

第一行有:用 11 个空格隔开的两个整数 MM、NN,分别代表学生的行数和列数(其中 1\leq M\eq 10,1\leq N\leq 101≤N≤10);

后 MM 行有:每一行对应的是 NN 列数据,表示所有学生的身高尺寸,数值为整数,单位:厘米(其中:140140 厘米\leq≤ 身高 \leq 170≤170 厘米,不需判断此条件),数据之间空 11 格。

输出格式

输出共有 M+3M+3 行:

前 MM 行:每行一个数据为各列中身高最高的同学的高度 (要求:各列按从左到右的顺序);
第 M+1M+1 行:为所有同学按身高从高到低的顺序排队的高度 (要求数据之间有1个空格);
第 M+2M+2 行:只有一个数据为所有同学的平均身高 (要求:四舍五入,保留整数);
第 M+3M+3 行:只有一个数据,为不小于平均身高的学生人数。
样例输入

3 4
141 161 156 167
170 163 168 157
162 145 153 163
样例输出

170
163
168
167
170 168 167 163 162 161 157 156 153 145 141
159
7
代码实现:

package 排序;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int M = input.nextInt();
        int N = input.nextInt();
        int [][] arr = new int[M][N];
        List list = new ArrayList();
        int [] array = new int [M*N];
        int k=0;
        for (int i=0;i result = getColMax(arr);
        print(result);
        
        //求所有的排序
        sort(array);
        //求平均数
        int avg = getAvg(list);
        System.out.println(avg);
        //统计出不小于平均数
        List max = getThanAvg(list);
        System.out.println(max.size());
        
    }

    private static void sort(int [] array) {
        Arrays.sort(array);
        for (int i=array.length-1;i>=0;i--) {
            System.out.print(array[i]+" ");
        }
        System.out.println();
    }

    //统计大于平均值的数
    private static List getThanAvg(List list) {
        int avg = getAvg(list);
        List resultList = new ArrayList();
        if (list != null && list.size()>0) {
            for (int i=0;i list) {
        double sum = 0;
        if (list != null && list.size() > 0) {
            for (int i = 0;i result) {
        if (result != null && result.size()>0) {
            for (int i=0;i getRowMax(int[][] arr) {
        List result = new ArrayList();
        int max = Integer.MIN_VALUE;
        for (int i=0;i getColMax(int[][] arr) {
            List result = new ArrayList();
            
            for (int i=0;i

你可能感兴趣的:(身高排队(没有运行通过))