Autor Tema: valores maximos de una matriz  (Leído 4332 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado tomario

  • PIC10
  • *
  • Mensajes: 22
valores maximos de una matriz
« en: 06 de Noviembre de 2010, 18:34:33 »
hola, tengo un pequeño problema en c, es que no se como sacar la posicion de los valores maximos en una matriz.
un programilla que me diga los valores maximos estan en la posicion m[2][3],m[5][1],etc.
si pueden ayudarme muchas gracias

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: valores maximos de una matriz
« Respuesta #1 en: 06 de Noviembre de 2010, 23:47:42 »
Código: [Seleccionar]
Temporal=m[0][0];
for (i=0;i<=cantidadfilas-1;i++){
     for (j=0;j<=cantidadcolumnas-1;j++){
      if(m[i][j]>temporal){
       temporal=m[i][j];
       posfilas=i;
       poscolumnas=j;
       }
     }
}


La variable temporal va a contener el valor máximo de la matriz.
las variables posfilas y poscolumnas contienen respectivamente la posición de fila y columna donde se encuentra el mayor valor de la matriz.

Como está escrito, solo se guarda la posición de la primera ocurrencia del mayor valor (En caso de aparecer dos valores iguales no se le hace caso a esta condición y sólo se guarda el primer aparecido)


Desconectado tomario

  • PIC10
  • *
  • Mensajes: 22
Re: valores maximos de una matriz
« Respuesta #2 en: 07 de Noviembre de 2010, 06:58:32 »
esto solo me guarda el valor maximo de la matriz, yo lo que quiero es tener la posicion de los 10 valores maximos, si puedes guiarme, gracias

Desconectado tomario

  • PIC10
  • *
  • Mensajes: 22
Re: valores maximos de una matriz
« Respuesta #3 en: 07 de Noviembre de 2010, 08:06:59 »
yo tengo una matriz, por ejemplo de 10*5 y lo que yo quiero es saber cual es la posicion de los 12 valores maximos de esa matriz, gracias

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: valores maximos de una matriz
« Respuesta #4 en: 07 de Noviembre de 2010, 11:55:17 »
Código: [Seleccionar]
contador=0;
Temporal=m[0][0];
for (i=0;i<=cantidadfilas-1;i++){
     for (j=0;j<=cantidadcolumnas-1;j++){
      if(m[i][j]>=temporal){
       temporal=m[i][j];
       posfilas[contador]=i;
       poscolumnas[contador]=j;
       if (m[i][j]=temporal){
         contador++;
       }
      }
     }
}

El valor máximo se encuentra en la variable temporal.
Los arreglos posfilas y poscolumnas contienen los lugares donde se produce ese máximo.
« Última modificación: 07 de Noviembre de 2010, 12:11:22 por pablomanieri »

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: valores maximos de una matriz
« Respuesta #5 en: 07 de Noviembre de 2010, 11:58:45 »
Talvez está mal hecha la pregunta... ¿lo que quieres es conocer el tamaño de la matriz?

Tendrías que leer el manual de tu compilador y buscar la función sizeof().

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: valores maximos de una matriz
« Respuesta #6 en: 07 de Noviembre de 2010, 12:11:55 »
Además ya te han dado una idea de como es el algoritmo, falta esfuerzo de tu parte para adaptarlo, y no esperar que te lo entreguen realizado  :?


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re: valores maximos de una matriz
« Respuesta #7 en: 07 de Noviembre de 2010, 13:05:15 »
yo tengo una matriz, por ejemplo de 10*5 y lo que yo quiero es saber cual es la posicion de los 12 valores maximos de esa matriz, gracias

Hay muchos algoritmos para ordenas vectores-matrices. Uno de los más famosos (sencillo pero no el más esficiente) es el de la burbuja o bubble sort. En la red tienes miles de ejemplos en C,C++, Java, Basic, etc.

Pero como dice Suky... cada uno debe poner un poquito de su parte...

Saludos
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado tomario

  • PIC10
  • *
  • Mensajes: 22
Re: valores maximos de una matriz
« Respuesta #8 en: 08 de Noviembre de 2010, 14:51:35 »
muchas gracias por vuestra ayuda ya lo consegui hacer


 

anything