Как получить самый большой и самый маленький элемент в 2d массиве в столбце Java, я получил вывод для строки - PullRequest
0 голосов
/ 29 мая 2018
public class colum {
    public static void main(String[] args) {
        int[][] data = { 
                { 3,  2,    5,-45 }, 
                { 1,  4,    4, -8 }, 
                { 9,  6, -100,  -2 },
                {-10, 3,    1,  -2 }};


        for (int row = 0; row < data.length; row++) {

            int large = data[row][0], 
                small = data[row][0];

            for (int col = 0; col < data[row].length; col++) {
                if (large < data[row][col]) {
                    large = data[row][col];

                }if (small > data[row][col]) {
                    small = data[row][col];
                }
            }

            System.out.println("\nlargest values:" + large);
            large = 0;
            System.out.println("smallest values:" +small);
            small = 0;

        }
    }
}

Вывод:

наибольшие значения: 5 наименьших значений: -45

наибольшие значения: 4 наименьших значения: -8

наибольшие значения: 9 наименьшихзначения: -100

наибольшие значения: 3 наименьших значения: -10

Ответы [ 3 ]

0 голосов
/ 29 мая 2018

Объявите те, кто находится вне цикла:

    int large = data[row][0], 
    int small = data[row][0];

и инициализируйте их просто первым элементом:

    int large = data[0][0], 
    int small = data[0][0];
0 голосов
/ 29 мая 2018
for (int col = 0; col < data[0].length; col++) { 

    int large = data[0][col], 
        small = data[0][col];

    for (int row = 1; row < data.length; row++) {
        if (large < data[row][col]) {
            large = data[row][col];

        }
        if (small > data[row][col]) {
            small = data[row][col];
        }

    }
    System.out.print("\nlargest values:" + large);
    System.out.print("smallest values:" +small);
}

Просто шанс, что ваш зацикленный оператор даст вам желаемый результат.

Надеюсь, это поможет.

0 голосов
/ 29 мая 2018

Переключите порядок циклов, чтобы найти минимальный и максимальный столбцы:

for (int col = 0; col < data[0].length; col++) { // assuming all row have same length

    int large = data[0][col], 
        small = data[0][col];

    for (int row = 1; row < data.length; row++) {
        if (large < data[row][col]) {
            large = data[row][col];

        }
        if (small > data[row][col]) {
            small = data[row][col];
        }

    }
    System.out.println("\nlargest values:" + large);
    System.out.println("smallest values:" +small);
}

Выход:

largest values:9
smallest values:-10

largest values:6
smallest values:2

largest values:5
smallest values:-100

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