GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Lógica do Maior e Menor valor em uma matriz


#1

Olá pessoal, eu achei um vídeo mostrando como faz para descobrir qual é o maior valor em uma matriz, porem o cara do vídeo não explicou como ele fez, gostaria que alguém me explicasse, Obrigado

CÓDIGO: (obs: é apenas essa parte do código que eu quero entender a logica, como fazendo essa troca com a variável “Maior” é possível identificar o maior valor na matriz)

for (int l = 0; l < 4; l++) {
for (int c = 0; c < 4; c++)
if (matriz[l][c] > maior) {
maior = matriz[l][c];
}
}


#2

Considere os valores abaixo para prosseguirmos

maior = 0;

matriz[0][0] = 5
matriz[0][1] = 3
matriz[0][2] = 4
matriz[0][3] = 8
matriz[1][0] = 3
...

Supondo que a gente tenha os valores acima armazenados na matriz e que a variável maior tenha o valor 0, vamos a lógica

O primeiro elemento a ser comparado é o [0][0]

if(matriz[0][0] > maior) { //Se 5 for maior que 0
    maior = matriz[0][0];//Armazena 5 como sendo o maior valor
}

Na próxima iteração, será usado o elemento matriz[0][1], e o seu valor é 3

if(matriz[0][1] > maior) { //Se 3 for maior que 5, mas 3 não é maior que 5, então o if não será executado e o maior continuará valendo 5
    maior = matriz[0][0];
}

Na próxima iteração, será usado o elemento matriz[0][2], e o seu valor é 4

if(matriz[0][2] > maior) { //Se 4 for maior que 5, mas 4 não é maior que 5, então o if não será executado e o maior continuará valendo 5
    maior = matriz[0][0];
}

Na próxima iteração, será usado o elemento matriz[0][3], e o seu valor é 8

if(matriz[0][3] > maior) { //Se 8 for maior que 5.
    maior = matriz[0][0];//Armazena 8 como sendo o maior valor
}

Na próxima iteração será usado o elemento matriz[1][0] e como ele vale 3, o if não será executado, logo a variável maior continuará com o valor 8


#3

Muito Obrigado !, consegui entender a logica.