Por que não esta somando?

26/10/2016

0

//Soma da Diagonal Principal
for(int i=0;i<matInt.length;i++){
for(int j=0;j==i;j++){
somaDP = somaDP + matInt[i][j];
}
}

Ele só está armazenando o primeiro numero que digito na matriz. Queria que ele somasse.
Ex:
4 - 3 - 4
1 - 2 - 2
4 -3 -2
No caso ai, ele só está armazenando o 4. QUeria que ele somasse o 4+2+2 (Diagonal Principal)
Thun An

Thun An

Responder

Posts

26/10/2016

Jones Granatyr

Opa, tente dessa maneira (está faltando o if para verificar se é a diagonal principal no seu código)

for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
AQUI COLOCA O IF PARA VERIFICAR SE É A DIAGONAL PRINCIPAL
}
}
Responder

26/10/2016

Lucas Victor

for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
if(i==0 && j==0 || i==1 && j==1 || i==2 && j==2){
somaDP = somaDP + matInt[i][j];
}
}
}
Responder

27/10/2016

Wálace Rodrigues

Uma solução para a soma da diagonal principal de uma matriz quadrada seria:

 for(int i=0;i<matInt.length;i++)
     somaDP += matInt[i][i];


Observe que você vai somar apenas quando os índices da matriz forem iguais (ex: 0,0; 1,1; 2,2), neste caso você não precisa de um segundo for, nem mesmo do if para fazer a verificação. Só fique atento, se você não faz mais alguma coisa com a variável somaDP antes de exibir o resultado.

Abraço
Responder

27/10/2016

Wálace Rodrigues

Uma solução para a soma da diagonal principal de uma matriz quadrada seria:

 for(int i=0;i<matInt.length;i++)
     somaDP += matInt[i][i];


Observe que você vai somar apenas quando os índices da matriz forem iguais (ex: 0,0; 1,1; 2,2), neste caso você não precisa de um segundo for, nem mesmo do if para fazer a verificação. Só fique atento, se você não faz mais alguma coisa com a variável somaDP antes de exibir o resultado.

Abraço


Eu não respondi porque o seu código não funcionou, segue ae:
No seu segundo for, você colocou como condição de parada j == i, logo, ele vai parar no primeiro instante que j != i, na primeira execução, o i = 0, j = 0, j == i , então somaDP = somaDP + matInt[i][j] que é 4, em todas as outras repetições o j será diferente do i logo de início, ignorando a soma. Por isso no final somaDP é o valor da primeira posição da matriz.

Abraço
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar