Para verificar o maior valor (ou o menor) em uma matriz, assim como com Vetores, deve-se percorrer todos os elementos dessa matriz armazenando o maior valor encontrado (a cada momento) em uma variável que represente o maior valor (ou o menor valor). Esse valor deve ser mostrado apenas no final da verificação.
A condição de verificação é intuitiva. Se o valor da variável que representa o maior valor for menor que o valor da posição comparada, o novo valor da variável maior deve ser agora o valor da própria variável comparada. Não sabendo da dimensão da matriz, assumiremos que o maior valor
a princípio será o do primeiro elemento dessa matriz. Se tivéssemos uma matriz de 1 elemento, int M[1][1], o maior valor estaria na posição M[0][0]. Ou seja, se tivermos a seguinte matriz...
int M[3][3] = {
{5,6,3},
{2,4,1},
{8,9,7}};
int MAIOR = M[0][0];
for...
...estará definido que a princípio o maior valor será o 5 no elemento M[0][0], isso antes de verificar em toda a matriz.
Então, durante a verificação iremos comparar o valor de cada elemento com o valor da variável MAIOR.
O seguinte passo, será comparar o valor da variável MAIOR com o valor do segundo elemento da matriz M (já que MAIOR tem o valor do primeiro elemento da matriz M). Então, se MAIOR for menor que M[0][1], MAIOR deve receber o valor de M[0][1], já que até então o maior valor encontrado estará nesse elemento M[0][1]. Se MAIOR NÃO for menor que M[0][1], nada deverá acontecer. Isto nos leva a...
(...)
int n=3, m=3; //OBS: Para uma matriz genéria, deve-se receber a quantidade de linhas (n) e colunas (m).
int M[3][3] = {
{5,6,3},
{2,4,1},
{8,9,7}};
int MAIOR = M[0][0] ...
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++){
if(MAIOR < M[i][j]){;
MAIOR = M[i][j];
...
Para saber a posição desse valor na matriz, deveremos armazenar em outras variáveis os valores de i e j cada vez que o valor da variável MAIOR for atualizado, ou seja, a cada vez que a expressão MAIOR < M[i][j] retornar verdadeiro. Assim como fizemos a suposição de que o maior valor, a princípio estaria na primeira posição, deveremos inicializar também essas duas variáveis com os índices do primeiro elemento da matriz M (M[0][0]).
(...)
int MAIOR=M[0][0], Mi=0, Mj=0;
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++){
if (MAIOR < M[i][j]) {
MAIOR = M[i][j];
Mi = i;
Mj = j;
}
}
}
cout << MAIOR << " M["<<Mi<<"]["<<Mj<<"]\n\n";