2015-05-13 6 views
0

Я пытаюсь понять, почему следующий бит кода Java работает правильно. Основная проблема, с которой я столкнулась, - это массив 2d в качестве аргумента, поэтому в a[0][0] будет храниться int с приведенным ниже тестовым примером?Базовое понимание 2D-массива

Я также немного запутался в том, почему мне не нужно сначала определять массив, а затем создавать его, а затем заполнять его аргументом.

public class Test { 
    // returns the largest element in a 
    // e.g. max({{1, 3}, {7, -2, 0}, {4, 4}}) = 7 
    public static int max(int[][] a) { 
     int max = a[0][0]; 
     for (int[] r : a) 
      for (int x : r) 
       max = Math.max(max, x); 
     return max; 
    } 
} 
+0

какой язык программирования вы используете? – warunapww

+0

woops sorry this is java – 30iT

ответ

0
  1. max будет равен 1 (первый массив {1,3}, первый элемент в этом массиве равно 1). Причина этого заключается в том, что вам нужен первый элемент для сравнения, и нет никаких ограничений относительно того, что является минимальным значением.

  2. Поскольку массив задан как параметр в функции, код, вызывающий функцию, заполняет массив.

+0

Спасибо, но я все еще смущен, возможно, если бы вы могли рассказать мне, что будет с ints: a [0] [0] a [0] [1] a [0] [2] a [ 1] [0] a [1] [1] a [1] [2] ........................ Возможно, я могу сделать вывод и оберните мою голову вокруг нее немного больше. спасибо – 30iT

+0

Проверьте это: [вложенные массивы объяснены] (http://stackoverflow.com/questions/260531/explaining-nested-arrays-to-a-programmer) –

Смежные вопросы