TODOPIC

Lenguajes de programación para PC => C, C#, C++ => Mensaje iniciado por: tomario en 06 de Noviembre de 2010, 18:34:33

Título: valores maximos de una matriz
Publicado por: tomario 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
Título: Re: valores maximos de una matriz
Publicado por: pablomanieri 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)

Título: Re: valores maximos de una matriz
Publicado por: tomario 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
Título: Re: valores maximos de una matriz
Publicado por: tomario 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
Título: Re: valores maximos de una matriz
Publicado por: pablomanieri 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.
Título: Re: valores maximos de una matriz
Publicado por: migsantiago 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().
Título: Re: valores maximos de una matriz
Publicado por: Suky 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!
Título: Re: valores maximos de una matriz
Publicado por: manwenwe 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
Título: Re: valores maximos de una matriz
Publicado por: tomario en 08 de Noviembre de 2010, 14:51:35
muchas gracias por vuestra ayuda ya lo consegui hacer