2013-02-12 2 views
1

Я пытаюсь форматировать массив, который состоит в следующем:Инициализировать значения 2D массива с помощью вложенной Циклы

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

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

ответ

6

Я думаю, что у вас есть непонимание двух одномерных массивов. Подумайте о них как о массивах, содержащих массивы.

, если вы действительно хотите:

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

Вы можете инициализировать его так:

int[][] array2d = new int[15][1] 
for (int i = 0; i < array2d.length; i++) { 
    array2d[i][0] = i + 1; 
} 

Если в FaTC, что вы действительно хотите:

[[1, 2, 3, 4, 5] 
[6, 7, 8, 9, 10] 
[11, 12, 13, 14, 15]] 

вы могли бы использование:

int[][] array2d = new int[3][5] 
for (int i = 0; i < array2d.length; i++) { 
    for (int j = 0; j < array2d[0].length; j++) { 
     array2d[i][j] = (i * array2d[0].length) + j + 1; 
    } 
} 
+0

Я думаю, вы могли бы использовать третью переменную, например 'k', для лучшего понимания оригинального плаката. –

+0

Спасибо за ответ, знаете ли вы, как я мог затем распечатать массив в порядке столбцов? Например: 1 6 11 2 7 12 3 8 13 и т. Д. – user2057847

+0

@ user2057847: Да, я знаю. Это новый вопрос. Попробуйте что-нибудь, если вы не можете понять это, опубликуйте новый вопрос, содержащий то, что вы пробовали. – jlordo

1

Try что-то вроде:

int width = 5; 
int height = 3; 
int[][] array = new int[height][width]; 

for (int i = 0; i < height; i++) 
{ 
    for (int j = 0; j < width; j++) 
    { 
     array[i][j] = i + j + (width * i); 
    } 
} 
Смежные вопросы