elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  maximo de una matriz?
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: maximo de una matriz?  (Leído 21,344 veces)
feedf

Desconectado Desconectado

Mensajes: 46


Ver Perfil
maximo de una matriz?
« en: 30 Junio 2013, 20:00 pm »

buenas tardes tengo que sacar el maximo de cada fila en la matriz m[5][20]

como seria?
yo pense algo asi , que recorra toda la fila uno y valla sacando max
pero habria que hacer 5 iguales me parece que debe haber una forma mas facil

espero una respuesta gracias

Código:
	int c,f,max,auxc,auxf;
max=m1[1][1];
auxf=1;


for(f=1;f<=1;f++)
{
for(c=1;c<=20;c++)
{
if(m1[f][c]>max)
{
max=m1[f][c];
auxf=f;
auxc=c;
}


En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: maximo de una matriz?
« Respuesta #1 en: 30 Junio 2013, 22:54 pm »

Ibas bien:

Código
  1. int Maximo[5] = {m[0][0],m[0][0],m[0][0],m[0][0],m[0][0]};
  2. int f = 0;
  3. int c = 0;
  4.  
  5. for (f = 0; f < 5;f++)
  6. {
  7.   for (c= 1; c < 5;c++)
  8.   {
  9.         if (m[c][f] > Maximo[f])
  10.             Maximo[f] = m[c][f];
  11.   }
  12. }

No lo he probado, pero debería funcionar.



« Última modificación: 30 Junio 2013, 22:56 pm por amchacon » En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
m@o_614


Desconectado Desconectado

Mensajes: 389


Ver Perfil
Re: maximo de una matriz?
« Respuesta #2 en: 1 Julio 2013, 05:43 am »

Yo lo haria de esta manera, donde n es el numero de filas y m es el numero de columnas, al entrar al ciclo la variable mayor se inicializa con (0,0) el valor del primer elemento de la primer fila, una vez que se va recorriendo la fila y se obtiene el valor mayor ( de fila 0) se sale del ciclo for y mayor se vuelve a inicializar con el valor del primer elemento pero ahora de la segunda fila ( fila 1), si te fijas en el primer ciclo se aumenta i para que vaya recorriendo las filas (0,1,2,3..) pero el valor de la columna nunca cambia porque tienes que iniciar desde la columna 0. los valores mayores de cada fila se guardan en un vector

Código
  1. int main()
  2. {
  3.    int i,j,mayor,m[TAM][TAM];
  4.  
  5.    for(i=0;i < n;i++)
  6.    {
  7.        mayor = m[i][0];
  8.        for(j=0; j< m;j++)
  9.        {
  10.            if(m[i][j] > mayor)
  11.                mayor = m[i][j];
  12.        }
  13.        v[i] = mayor;
  14.    }
« Última modificación: 1 Julio 2013, 05:45 am por m@o_614 » En línea

KaL3o

Desconectado Desconectado

Mensajes: 60



Ver Perfil
Re: maximo de una matriz?
« Respuesta #3 en: 1 Julio 2013, 07:19 am »


Código
  1. int Maximo[5] = {m[0][0],m[0][0],m[0][0],m[0][0],m[0][0]};
  2. int f = 0;
  3. int c = 0;
  4.  
  5. for (f = 0; f < 5;f++)
  6. {
  7.   for (c= 1; c < 5;c++)
  8.   {
  9.         if (m[c][f] > Maximo[f])
  10.             Maximo[f] = m[c][f];
  11.   }
  12. }

No lo he probado, pero debería funcionar.


creo q te hizo falta cambiar las filas y columnas en el if, seria
Código
  1.         if (m[f][c] > Maximo[f])
  2.             Maximo[f] = m[f][c];
  3.  
supongo un pequeño desliz al escribir rapidamente :)


Código
  1. int main()
  2. {
  3.    int i,j,mayor,m[TAM][TAM];
  4.  
  5.    for(i=0;i < n;i++)
  6.    {
  7.        mayor = m[i][0];
  8.        for(j=0; j< m;j++)
  9.        {
  10.            if(m[i][j] > mayor)
  11.                mayor = m[i][j];
  12.        }
  13.        v[i] = mayor;
  14.    }
en el ciclo interno puedes inicializar j con 1.

Salu2 :)
En línea

Todos los caminos se vuelven a juntar. Pero nunca de la misma forma.
feedf

Desconectado Desconectado

Mensajes: 46


Ver Perfil
Re: maximo de una matriz?
« Respuesta #4 en: 1 Julio 2013, 23:42 pm »

gente le hago una consulta , lso codigos que me dieron son para definir el maximo de cada fila de una matriz? o de toda la matriz?

por que poniendo por ejemplo

Código:
int Maximo[5] = {m[0][0],m[0][0],m[0][0],m[0][0],m[0][0]};
int f = 0;
int c = 0;
 
for (f = 0; f < 5;f++)
{
   for (c= 1; c < 5;c++)
   {
         if (m[c][f] > Maximo[f])
             Maximo[f] = m[c][f];
   }
}

estaria recorriendo toda la matriz o estaria recorriendo CADA fila y guardando el maximo en el vector ?

muchas gracias
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: maximo de una matriz?
« Respuesta #5 en: 2 Julio 2013, 00:04 am »

Código
  1. for (f = 0; f < 5;f++)
  2. {
  3.   for (c= 1; c < 5;c++)

el primero es un bucle para las filas ( por eso la f por nombre de variable ) que las recorre de la 0 a la 4. El segundo es un bucle para columnas... y las recorre de la 0 a la 4... y eso para cada valor de f.

Dicho esto, si, estarías recorriendo toda la matriz.

Y dicho esto también me permito añadir lo siguiente: si te pierdes con dos bucles y cuatro líneas de código ponte las pilas porque esto no es ni tan siquiera la punta del iceberg. Aprende a usar el depurador de c++ y a seguir la traza de los programas... te ayudará a comprender mejor cómo funciona el código... y haz muuuuchas prácticas :)
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: maximo de una matriz?
« Respuesta #6 en: 2 Julio 2013, 00:16 am »

estaria recorriendo toda la matriz o estaria recorriendo CADA fila y guardando el maximo en el vector ?
Ambas afirmaciones son sinonimas (recorrer todas las filas de una matriz = recorrer toda la matriz).

Y si, guarda el máximo de cada fila en el vector Maximo.
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
feedf

Desconectado Desconectado

Mensajes: 46


Ver Perfil
Re: maximo de una matriz?
« Respuesta #7 en: 2 Julio 2013, 00:21 am »

te hago una consulta

mi codigo quedo asi mira

Código:
void opc2(float m1[5][20]) /* funciona pero para una sola Gaceosa(fila) */
{

int c,f,auxc,auxf,i;
int max[5]={m1[0][0],m1[0][0],m1[0][0],m1[0][0],m1[0][0]};
int aux[5]={0};

    i=0;

for(f=1;f<=5;f++)
{
for(c=1;c<=20;c++)
{
if(m1[f][c]>max[f])
{
max[f]=m1[f][c];            
        aux[f]=c;
}
}

}

for(i=1;i<=5;i++)
{

printf("para la gaceosa %d se embotello mas en el centro %d\n",i,aux[i]);
}


}

funciona bien pero cuando lo corro se guarda en el vector aux[5](posicion 5 ) el valor 20 sin haber tocado esa posicion y las demas quedan en 0 o en los valores que deberian estar
no entiendo porque me podrias ayduar?
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: maximo de una matriz?
« Respuesta #8 en: 2 Julio 2013, 00:31 am »

Código
  1. aux[f]=c;
La c va desde 0 a 20, de que te extrañas?

Usa el vector max que para eso lo puse, por cierto me equivoqué aquí

Código
  1. int max[5]={m1[0][0],m1[0][0],m1[0][0],m1[0][0],m1[0][0]};

Prueba lo siguiente:

Código
  1. int c,f;
  2. int max[5];
  3.  
  4. for (f = 0; f <5;f++)
  5. {
  6.    max[f] = 0;
  7.  
  8.    for (c=1;c < 20;c++)
  9.    {
  10.         if (m1[f][c] > max[f])
  11.              max[f] = m1[f][c]
  12. }
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
feedf

Desconectado Desconectado

Mensajes: 46


Ver Perfil
Re: maximo de una matriz?
« Respuesta #9 en: 2 Julio 2013, 00:40 am »

claro pero al guardar la matriz en el vector max me guarda el valor qe esta en esas cordenadas y lo que yo necesitaria es saber en que columna esta el maximo y no el valor del maximo
nose si m estoy explicando bien o estoy pifiando en algo XD

jaj gracias
En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines