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.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts