Faltou novamente dar new no vetorDiagonal.
entao ficaria assim? nao sei porque mas o eclipse esta me a dar uma erro no passo return
int[][] diagonal(int[][] matriz){
int[][] vetorDiagonal = new int [matriz.length][matriz.length];
for (int i = 0; i < matriz.length; i++){
for(int j = 0; j< matriz.length; j++){
if(i!=j)
vetorDiagonal[i][j] = 0;
else
vetorDiagonal[i][j] = matriz[i][i];
}
}
return vetorDiagonal;
}
Isso mesmo.
Que erro? Aqui funcionou normal. Só corrija sua endentação, pq está incorreta:
int[][] diagonal(int[][] matriz) {
int[][] vetorDiagonal = new int[matriz.length][matriz.length];
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz.length; j++) {
if (i != j)
vetorDiagonal[i][j] = 0;
else
vetorDiagonal[i][j] = matriz[i][j];
}
}
return vetorDiagonal;
}
Outra possibilidade é usar o operador ternário:
int[][] diagonal(int[][] matriz) {
int[][] vetorDiagonal = new int[matriz.length][matriz.length];
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz.length; j++) {
vetorDiagonal[i][j] = i == j ? matriz[i][i] : 0;
}
}
return vetorDiagonal;
}
[quote=ViniGodoy]Isso mesmo.
Que erro? Aqui funcionou normal. Só corrija sua endentação, pq está incorreta:
[/quote]
Erro meu, nao estava a dar erro, estava a dar erro anteriormente mas como nao gravei o ficheiro continuou por defeito a premanecer o tal erro. Está tudo OK mais uma vez obrigado pela atençao