Valores da matriz diagonal

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