2012-02-08 2 views
0

Как это можно напечатать?Двухмерные массивы

1 2 3 4  
5 6 7 8 
9 10 11 12 
13 14 15 16 

меня это до сих пор:

int ROWS = 4; 
int COLS = 4; 
int[][] a2 = new int[ROWS][COLS]; 

String output = ""; // Accumulate text here (should be StringBuilder). 
//... Print array in rectangular form using nested for loops. 
for (int row = 0; row < ROWS; row++) { 
for (int col = 0; col < COLS; col++) { 
output += " " + a2[row][col]; 
} 
output += "\n"; 
System.out.print(output); 

Но он просто печатает это:

0 0 0 0 
0 0 0 0 
0 0 0 0 
0 0 0 0 

Также я хочу, чтобы распечатать числа в случайном порядке. Как я могу это сделать?

+0

Строка ROWS ++; не должно быть там. –

+1

Вы можете отредактировать свое сообщение, чтобы удалить его. Рядом с тегами есть ссылка «редактировать». – Mat

+1

Вы получаете нуль, так как не заполняете значения в массиве a2? –

ответ

3

Вам необходимо заполнить a2, если вы ожидаете, что она содержит ненулевые значения:

for (int col = 0; col < COLS; col++) { 
    a2[row][col] = row * COLS + col + 1; // <---- added this line 
    output += " " + a2[row][col]; 
} 

Дополнительно:

  1. Вы пропустили закрывающую фигурную скобку. Он должен идти после output += "\n";.
  2. Цель ROWS++ непонятно, и выглядит очень нечетным.

Также я хочу напечатать цифры в случайном порядке. Как я могу это сделать?

Три простых шага:

  1. заселить a2, как указано выше;
  2. randomly shufflea2;
  3. распечатать его (вы уже знаете, как это сделать).
+0

Хороший ответ! Не фиксировать весь код (с его домашней работы), но указывая в правильном направлении. –

0
  1. использования линии, предложенная AIX выше: a2[row][col] = row * COLS + col + 1;
  2. удалить линии ROWS++
  3. Для случайных чисел используют Collections.shuffle на 1D массив, а затем группа бу строки и столбцы
0

ну вы массивы пустые

попытаться объявить Прям ая инициализация:

int[][] a2 = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; 

также некоторые ошибки в коде: попробуйте это:

int ROWS = 4; 
int COLS = 4; 
int[][] a2 = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; 

String output = ""; // Accumulate text here (should be StringBuilder). 
//... Print array in rectangular form using nested for loops. 
for (int row = 0; row < ROWS; row++) 
{ 
    for (int col = 0; col < COLS; col++) 
    { 
    output += " " + a2[row][col]; 
    } 
    output += "\n"; 
} 
System.out.print(output); 
+1

Старайтесь не исправлять все, когда это домашнее задание, скорее укажите в правильном направлении или дайте подсказки и подсказки. –

0

Чтобы получить результат в соответствии с вашими ожиданиями ....
во-первых, вы должны установить значение вашего массива .. .

0 0 0 0 
0 0 0 0 
0 0 0 0 
0 0 0 0 

Вы получаете это потому, что значение по умолчанию ИНТ 0 вот почему показывает все 0. ,
Для получения случайной величины используемого массива Collections.shuffle

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