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 № 1Nã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");
}