Autor
|
Tema: maximo de una matriz? (Leído 21,344 veces)
|
feedf
Desconectado
Mensajes: 46
|
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 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
Mensajes: 1.211
|
Ibas bien: 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]; } }
No lo he probado, pero debería funcionar.
|
|
« Última modificación: 30 Junio 2013, 22:56 pm por amchacon »
|
En línea
|
|
|
|
m@o_614
Desconectado
Mensajes: 389
|
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 int main() { int i,j,mayor,m[TAM][TAM]; for(i=0;i < n;i++) { mayor = m[i][0]; for(j=0; j< m;j++) { if(m[i][j] > mayor) mayor = m[i][j]; } v[i] = mayor; }
|
|
« Última modificación: 1 Julio 2013, 05:45 am por m@o_614 »
|
En línea
|
|
|
|
KaL3o
Desconectado
Mensajes: 60
|
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]; } }
No lo he probado, pero debería funcionar. creo q te hizo falta cambiar las filas y columnas en el if, seria if (m[f][c] > Maximo[f]) Maximo[f] = m[f][c];
supongo un pequeño desliz al escribir rapidamente int main() { int i,j,mayor,m[TAM][TAM]; for(i=0;i < n;i++) { mayor = m[i][0]; for(j=0; j< m;j++) { if(m[i][j] > mayor) mayor = m[i][j]; } v[i] = mayor; }
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
Mensajes: 46
|
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 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
Mensajes: 1.248
|
for (f = 0; f < 5;f++) { 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
Mensajes: 1.211
|
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
|
|
|
|
feedf
Desconectado
Mensajes: 46
|
te hago una consulta mi codigo quedo asi mira 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
Mensajes: 1.211
|
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í int max[5]={m1[0][0],m1[0][0],m1[0][0],m1[0][0],m1[0][0]};
Prueba lo siguiente: int c,f; int max[5]; for (f = 0; f <5;f++) { max[f] = 0; for (c=1;c < 20;c++) { if (m1[f][c] > max[f]) max[f] = m1[f][c] }
|
|
|
En línea
|
|
|
|
feedf
Desconectado
Mensajes: 46
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Duda - Buscar si existe una matriz dentro de otra matriz
Programación Visual Basic
|
EddyW
|
2
|
6,022
|
14 Agosto 2010, 06:18 am
por EddyW
|
|
|
MATRIZ que imprima como una matriz en forma de cuadrado... ayudaaaaa!! help
Programación C/C++
|
oscarpy
|
3
|
8,814
|
9 Abril 2012, 16:23 pm
por Xandrete
|
|
|
Enviar una matriz desde una funcion a la matriz del main
Programación C/C++
|
erest0r
|
3
|
4,068
|
22 Junio 2013, 09:05 am
por leosansan
|
|
|
Calcular máximo de matriz, error
Programación C/C++
|
Puntoinfinito
|
7
|
5,060
|
18 Julio 2013, 11:58 am
por Puntoinfinito
|
|
|
Máximo de cada fila de una matriz
.NET (C#, VB.NET, ASP)
|
gabyricardo1992
|
3
|
3,413
|
17 Septiembre 2013, 08:05 am
por gabyricardo92
|
|