Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Mayor elemento de una matriz y posicion

Estas en el tema de Mayor elemento de una matriz y posicion en el foro de C/C++ en Foros del Web. Hola. Estoy haciendo un ejercicio con este enunciado: Escribir una función que busque en una matriz de números el máximo valor, e indique su valor ...
  #1 (permalink)  
Antiguo 06/03/2012, 12:06
 
Fecha de Ingreso: enero-2012
Mensajes: 68
Antigüedad: 12 años, 11 meses
Puntos: 0
Mayor elemento de una matriz y posicion

Hola.

Estoy haciendo un ejercicio con este enunciado:

Escribir una función que busque en una matriz de números el máximo valor, e
indique su valor y posición. Se supone que la matriz está desordenada.

Ya tengo hecha la función, que me devuelve la posición. ¿A partir de la posición puedo determinar en main el máximo valor del vector? Es que hice un ejercicio igual pero con vectores, y lo hice a partir de la posición, pero en matrices no sé cómo lo puedo hacer...

Código C:
Ver original
  1. /* 14. Escribir una función que busque en una matriz de números el máximo valor, e
  2. indique su valor y posición. Se supone que la matriz está desordenada. */
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6.  
  7. int maximapos(int M[][3], int n)
  8. {
  9.    int i, mejor_valor, j;
  10.  
  11.    mejor_valor = M[0][0];
  12.    for (i = 0; i < n; i++)
  13.    {
  14.       for(j=0;j<=n;j++)
  15.       {
  16.       if (M[i][j] > mejor_valor) mejor_valor = i;
  17.       }
  18.    }
  19.  
  20.    return mejor_valor;
  21. }
  22.  
  23. int main()
  24. {
  25.     int M[][3] = {1, 2, 3,
  26.              4, 5, 6,
  27.              7, 8, 9};
  28.              
  29.     int posicion, mayor, aux1, aux2;
  30.  
  31.     posicion = maximapos(M, 9);
  32.     // mayor = M[ALGO][ALGO]
  33.    
  34.     printf("Mejor valor: %d\nMejor posicion: %d", mayor, posicion);
  35.    
  36.     system("pause");
  37.     return 0;
  38. }

Muchas gracias.

Saludos.
  #2 (permalink)  
Antiguo 06/03/2012, 17:00
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 13 años
Puntos: 94
Respuesta: Mayor elemento de una matriz y posicion

Hola! me parece que con la funcion que creaste solo estas devolviendo el numero de fila en donde se encuentra el maximo valor pero te falte indicar la columna. Lo q te propongo es que en la funcion encuentres el maximo valor y retornes ese valor, y en el main compares ese valor con la matriz hasta encontrar en que posicion se encuentra

En la funcion:
Código C:
Ver original
  1. int maximapos(int M[][3], int n)
  2. {
  3.    int i, j, maxValor;
  4.  
  5.    maxValor = M[0][0];
  6.    for (i = 0; i < n; i++)
  7.    {
  8.       for(j=0;j<n;j++)
  9.       {
  10.       if (M[i][j] > M[i+1][j+1]) maxValor = M[i][j];
  11.       }
  12.    }
  13.    return maxValor;
  14. }

En el main:
Código C:
Ver original
  1. int main()
  2. {
  3.     int M[][3] = {1, 2, 3,
  4.              4, 5, 6,
  5.              7, 8, 9};
  6.              
  7.     int maxValor, i,j,posFila, posColumna;
  8.  
  9.     maxValor = maximapos(M, 3);
  10.  
  11.    for (i = 0; i < 3; i++)
  12.    {
  13.       for(j=0;j<3;j++)
  14.       {
  15.       if (M[i][j] == maxValor) break;
  16.       }
  17.    }      
  18.     printf("Posicion[%d][%d]   Valor: %d \n",posFila,posColumna,maxValor);
  19.    
  20.     system("pause");
  21.     return 0;
  22. }

Otra cosa revisa el segundo argumento de la llamada a la funcion maximapos() ¿xq pasas 9?

Saludos, espero te sirva
  #3 (permalink)  
Antiguo 06/03/2012, 18:26
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 8 meses
Puntos: 228
Respuesta: Mayor elemento de una matriz y posicion

podrias usar punteros para devolver el indice....sabes manejar punteros?
  #4 (permalink)  
Antiguo 06/03/2012, 19:19
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 13 años
Puntos: 94
Respuesta: Mayor elemento de una matriz y posicion

Mirando lo que te mandea anteriormente me equivoque en algo, cambia la linea 18 del main por esto:

Código C:
Ver original
  1. printf("Posicion[%d][%d]   Valor: %d \n",i,j,maxValor);
  #5 (permalink)  
Antiguo 07/03/2012, 08:17
 
Fecha de Ingreso: enero-2012
Mensajes: 68
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Mayor elemento de una matriz y posicion

¡Muchas gracias por tu ayuda!

Saludos.

Etiquetas: elemento, int, matriz, mayor, posicion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:25.