Pegando a posição do maior [RESOLVIDO]

1. Pegando a posição do maior [RESOLVIDO]

luiz neto
lbneto

(usa Ubuntu)

Enviado em 01/04/2011 - 18:41h

Salve, salve galera.

Seguinte tenho uma matriz[3][3]
Fiz um algoritmo em c para pegar o maior valor dela, mas eu gostaria de pegar a posição onde ele se encontra, ainda não consegui pensar em um jeito.

Eu até fiz assim.

Maior=matriz[0][0]
for(i=0;i<3;i++)
{
if(matriz[i][j]>maior)
{ maior=matriz[i][j];
posicao=i;
}
}
------- Neste caso quando meu maior valor está na terceira ou segunda casa, ele até funciona, mas quando coloco o maior valor na posição "0" da matriz e imprimo <posicao> ele me mostra um valor 40962...acho q é isso, me parece o local da memoria...

Se alguem puder me dar uma ajuda....


Valeu


  


2. MELHOR RESPOSTA

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 01/04/2011 - 19:00h

Amigo,

Não tem coisa faltando no seu código?
Você está iterando apenas a variavel i, mas usa i e j para percorrer a matriz.

Deveria ser:

int i,j;
int maior = matriz[0][0], posi_maior = 0, posj_maior = 0;

for(i=0; i<3; i++){
for(j=0; j<3; j++){
if( matriz[i][j] > maior ){
maior = matriz[i][j];
posi_maior = i;
posj_maior = j;
}
}
}

Ao sair do for mais externo, a variavel maior tera o maior valor da matriz, e "posi_maior" e "posj_maior" terão as posições i e j respectivamente do maior valor da matriz.

Espero ter ajudado!

3. RESOLVIDO

luiz neto
lbneto

(usa Ubuntu)

Enviado em 02/04/2011 - 18:31h

Opa, valeu pela ajuda, na verdade descobri verificando o seu pedaço de codigo o que estava de errado no meu, eu cometi o erro de não inicializar minha variavel que guarda a posição "posicao" com o valor de zero, logo quando eu dava o print ele me mostrava um valor de memoria que tava lá dando bobeira.

Valeu, Abraço.