Bom dia, construi este programa que gera uma matriz de ordem n e passa metade (sem contar a diagonal) para um vetor.
Mas o programa está a passar apenas uma parte dos valores.
Este é o codigo:
public void executar() {
int[]vetorMetade = gerarVetorMetade(matrizAleatoria);
for (int e = 0; e<vetorMetade.length;e++){
System.out.println(vetorMetade[e]);
}
}
/**
* Cria um vetor com metade dos termos de uma matriz
*/
private int[] gerarVetorMetade(int matriz[][]) {
int resultado = 0;
for (int x = 1; x <= matriz.length-1; x++){
resultado += x;
}
int[] vetorMetade = new int[resultado];
for ( int y=1;y<matriz.length;y++){
for ( int x=0;x<matriz.length;x++){
vetorMetade[x]=matriz[y][x];
}
}
return vetorMetade;
}
Por exemplo se ele gerar esta matriz:
0 17 76 65
17 0 46 36
76 46 0 58
65 36 58 0
só passa estes valores para o vetor:
65
36
58
quando devia passar estes:
17
76
46
65
36
58
Obrigado pela ajuda 