Массив лучших результатов - PullRequest
0 голосов
/ 07 сентября 2018

Так что мне нужно сделать это «напечатать результаты тестов, найти общее среднее значение по классу и определить, какой ряд имеет наилучшее среднее». и я в замешательстве, как я могу быть

public class TESTAVG {

    public static void main(String[]args) {
        int array1[][] = {{90, 80, 65, 100}, {55, 94, 86,}, {82}, {77, 100}};
        System.out.println(array1);
    }
} //[[I@2a139a55

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Чтобы найти, какой подмассив имеет большее среднее значение, вы должны вычислить их и сохранить максимум:

public static void main(String[] args){
    int array1[][] = {{90, 80, 65, 100}, {55, 94, 86}, {82}, {77, 100}};
    double maxAverage = Double.MIN_VALUE;
    for(int[] sub : array1){                       //iterate over sub-arrays
        double average = averageOfArray(sub);      //compute its average
        maxAverage = Math.max(maxAverage, average);//get the max of it and the previous max
    }
    System.out.printn(maxAverage)
}

static double averageOfArray(int[] array){
    double sum = 0;
    for(int i=0; i<array.length; i++){
        sum += array[i];
    }   
    return sum/array.length;
}

или как уровень повышения Java 8:

int array1[][] = {{90, 80, 65, 100}, {55, 94, 86,}, {82}, {77, 100}};
double maxAverage = Arrays.stream(array1).mapToDouble(sub -> Arrays.stream(sub).average().orElse(0)).max().orElse(0);
System.out.println(maxAverage)
0 голосов
/ 07 сентября 2018

Когда вам нужен строковый массив, вы можете использовать Arrays.toString (arr); А для многомерных массивов вы должны использовать Arrays.deepToString (arr);

int array1[][] = {{90, 80, 65, 100}, {55, 94, 86,}, {82}, {77, 100}};
System.out.println(Arrays.deepToString(array1));

[[90, 80, 65, 100], [55, 94, 86], [82], [77, 100]]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...