/ / 2D Arrays exercise precisa resolver - java, arrays

Arrays 2D exercício precisa resolver - java, matrizes

Eu quero que o programa seja impresso assim:

Elementos da matriz: 2
4 6
8 10 12
14 16
18

Mas eu fiquei preso. Este é o meu código:

    int[][] matrix = new int [5][];
matrix[0] = new int[1];
matrix[1] = new int[2];
matrix[2] = new int[3];
matrix[3] = new int[2];
matrix[4] = new int[1];
System.out.println("nn Matrix elements: ");
for(int i = 0; i < matrix.length; i++) {
for(int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println("t");
}

E o programa só imprime assim:

Elementos da matriz: 0
0 0
0 0 0
0 0
0

Obrigado por ajudar!

Respostas:

3 para resposta № 1

Não vai funcionar, porque você esqueceu o segundotarefa. Seu código é apenas: "Ei Java, eu preciso de um array bidimensional e ele deve ter 5 linhas", e depois disso você adicionou "Ah, e a linha 1 deveria ter uma coluna, linha 2 duas colunas, ..." mas você não mensionou os valores que você quer ter lá.

Aqui está o que você pode fazer:

    int[][] matrix = new int [5][];
// one by one assignment
matrix[0] = new int[1];
matrix[0][0] = 0;

matrix[1] = new int[2];
matrix[1][0] = 2;
matrix[1][1] = 4;
//...

Ou:

    int[][] matrix = new int [5][];
// This way you just say what you want to have inside the array and java will
// evaluate the size needed
matrix[0] = new int[]{ 0 };
matrix[1] = new int[]{ 2, 4 };
//...

Ou:

   // like the previous one, but in a two dimensional way.
int[][] matrix = new int[][] {
{ 0 },
{ 4, 6 },
{ 8, 10, 12 },
{ 14, 16 },
{ 18 }
};

Os métodos levarão ao mesmo resultado, mas eu recomendo usar o terceiro, porque aumenta a legibilidade.


1 para resposta № 2

Primeiro de tudo você tem que atribuir valor a cada elemento da matriz.Como descrever no código abaixo.

    int temp=0;
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
temp=temp+2;
matrix[i][j] = temp;
}

}
for(int k = 0; k < matrix.length; k++) {
for(int l = 0; l < matrix[k].length; l++) {
System.out.print(matrix[k][l] + " ");
}
System.out.println("t");
}

Espero que isso ajude você.


-1 para resposta № 3

Atribuir valor ao elemento. Você imprime o valor 0 porque int [i] [j] é 0.

        int [][] matrix = new int[5][];
matrix[0] = new int[1];
matrix[1] = new int[2];
matrix[2] = new int[3];
matrix[3] = new int[2];
matrix[4] = new int[1];

for(int i = 0; i < matrix.length; i++) {
for(int j = 0; j < matrix[i].length; j++) {
matrix[i][j]= j+i+2;
}
}


System.out.println("nn Matrix elements: ");
for(int i = 0; i < matrix.length; i++) {
for(int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println("t");
}

ou ...

        int [][] matrix = new int[5][];
matrix[0] = new int[1];
matrix[1] = new int[2];
matrix[2] = new int[3];
matrix[3] = new int[2];
matrix[4] = new int[1];


System.out.println("nn Matrix elements: ");
for(int i = 0; i < matrix.length; i++) {
for(int j = 0; j < matrix[i].length; j++) {
System.out.print(i+j+2 + " ");
}
System.out.println("t");
}