Pow to com problema pra criar um “for” para multiplicar apenas os elementos da diagonal principal de uma matriz…
Será q alguem pode me ajudar com isso?
Obrigado a Todos…
Pow to com problema pra criar um “for” para multiplicar apenas os elementos da diagonal principal de uma matriz…
Será q alguem pode me ajudar com isso?
Obrigado a Todos…
total = 1;
for(int i =0; i< TAMANHO_DA_MATRIZ; i++){
total *= matriz[i][i];
}
código fala por si só:
int[][] matrix = {{10,15,15},
{10,15,15},
{10,15,15}};
for(int row = 0; row < matrix.length; row++) {
for(int col = 0; col < matrix[row].length;col++) {
if (col == row)
matrix[row][col] = matrix[row][col] * 2;
}
}
for(int row = 0; row < matrix.length; row++) {
for(int col = 0; col < matrix[row].length;col++) {
System.out.println(matrix[row][col]);
}
}
Certifique-se que a matriz é quadrada, ou seja, que tenha a mesma quantidade de linhas e colunas.
Veja:
public static int somaDiagonalPrincipal(int[][] matriz) {
int soma = 0;
int col = 0;
for (int row = 0; row < matriz.length; row++) {
soma *= matriz[row][col];
col++;
}
return soma;
}
A cada linha que desce, ele anda uma coluna pra frente, com um único for, sem a necessidade de um for para andar as linhas e outro para andar as colunas, e comparar se a linha e a colunas são iguais, dai efetuar o calculo.
Não tem pq varrer todas colunas até q esta seja igual a linha, sendo q se começo no indice [0][0], o proximo sera [1][1].
Outra forma:
public static int somaDiagonalPrincipal(int[][] matriz) {
int soma = 0;
for (int row = 0; row < matriz.length; row++) {
soma *= matriz[row][row]; // é mais confuso, mas o numero da linha e da coluna são iguais nesta logica, então tbm funciona dessa forma.
}
return soma;
}
E você certifique-se de responder tópicos atuais… especialmente se for para dar uma resposta que já havia sido dada.