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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  punto silla de una matriz
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: punto silla de una matriz  (Leído 9,071 veces)
criser20

Desconectado Desconectado

Mensajes: 7


Ver Perfil
punto silla de una matriz
« en: 5 Abril 2014, 04:57 am »

hola me podrian ayudar a tener una idea de como entrarle pq de verdad que no se como hacerle miren
Código
  1. int main()
  2. {int opc, f, c,  matriz[f][c] ;
  3. do{
  4.        system("CLS");
  5.  
  6.   printf("8.punto de silla");
  7.   printf("0.Salir\n");
  8.   printf("que opcion desea?\n");
  9.   scanf("%d", &opc);
  10.    switch(opc){
  11.  
  12. case 8:
  13.  printf("numero de filas:");
  14.    scanf("%d", &f);
  15.    printf("numero de columnas:");
  16.    scanf("%d", &c);
  17.    llenaMatriz(f, c, matriz);
  18.    printf("la matriz es:\n");
  19.    despliegaMatriz(f,c,matriz);
  20.    break;
  21.  }
  22.  
  23.   } while(opc!=0);
  24.    return 0;
  25. }
  26.  
  27. void llenaMatriz(int n, int m, int matriz[n][m]){
  28. int i, j;
  29.    for (i=0; i<n; i++) {
  30.        for(j=0; j<m; j++) {
  31.            printf("Introduzca la posicion %d, %d: ", i+1, j+1);
  32.            scanf("%d", &matriz[i][j]);
  33.        }
  34.  
  35.    }
  36. }
  37.  
  38. void despliegaMatriz(int n, int m, int matriz[n][m]){
  39. int i, j;
  40.    for(i=0; i<n; i++) {
  41.        for (j=0; j<m; j++) {
  42.            printf("%d\t", matriz[i][j]);
  43.        }
  44.        printf("\n");
  45.    }
  46. }
  47.  


En línea

noele1995

Desconectado Desconectado

Mensajes: 137



Ver Perfil
Re: punto silla de una matriz
« Respuesta #1 en: 5 Abril 2014, 13:58 pm »

Bueno puedes ir columna por columna buscando el mayor, y cuando lo encuentras despues compruebas su fila a ver si es el menor.
Código
  1. int opc, f, c,  matriz[f][c] ;

Estas declarando una matriz de tamaño f x c cuando f y c no estan inicializados y su contenido es basura, inicializalos o usa una constante o un define.

Saludos



En línea

criser20

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: punto silla de una matriz
« Respuesta #2 en: 5 Abril 2014, 19:52 pm »

Bueno puedes ir columna por columna buscando el mayor, y cuando lo encuentras despues compruebas su fila a ver si es el menor.
Estas declarando una matriz de tamaño f x c cuando f y c no estan inicializados y su contenido es basura, inicializalos o usa una constante o un define.

Saludos


se que seria asi lo que no se como hacer eso :/ y en el libro que tengo solo habla de lo basico y no aparece eso >.<
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: punto silla de una matriz
« Respuesta #3 en: 5 Abril 2014, 20:25 pm »

se que seria asi lo que no se como hacer eso :/ y en el libro que tengo solo habla de lo basico y no aparece eso >.<

Para empezar tienes que arreglar lo de la matriz.

Como  ya te indiqué en dos de los temas anteriores, no puedes declararla antes de conocer sus dimensiones.


* Esto no:

Código
  1. int opc, f, c,  matriz[f][c] ;

* Esto si:

Código
  1. .........................
  2. int  f, c;
  3.  printf("numero de filas:");
  4.  scanf("%d", &f);
  5.  printf("numero de columnas:");
  6.  scanf("%d", &c);
  7.  int matriz[f][c];
  8. ...........................

Y respecto al tema del punto silla sólo tienes que seguir los pasos que te indicó noele1995.

Por ejemplo, primero calculas el máximo de cada columna (los valores de mayor y menor pones tu los que consideres, aunque para hacerlo bien habría que usar la librería limits.h y elegir el máximo=INT_MIN y mínimo=INT_MAX de los int):


Código
  1. int i,iM,jm ,j,k,mayor=-1000,menor=1000;
  2.  for (j=0; j<m; j++){
  3.    mayor=-1000,menor=1000;
  4.    for(i=0; i<n; i++) {
  5.      if (matriz[i][j]>mayor){
  6.        mayor=matriz[i][j];
  7.        iM=i;
  8.      }
  9.    }

Y una vez localizado el máximo de una columna, cosa que hace el código anterior, miras cual es el mínimo de la fila donde está ese máximo:

Código
  1. for (k=0; k<m; k++){
  2.      if (matriz[iM][k]<menor){
  3.        menor=matriz[iM][k];
  4.        jm=k;
  5.      }
  6.    }

Y ya sólo queda comparar si el mayor de la columna coincide con el mínimo de la fila correspondiente:

Código
  1. if (mayor==menor)
  2.      printf ("\nPunto de silla el a[%d][%d]=%d\n",iM,jm,matriz[iM][jm]);

Si aplicas lo anterior a la matriz:

Citar
1       2       3
2       3       4
1       5       2



obtendrás:

Citar
Punto de silla el a[1][0]=2

Espero que lo tengas ahora más claro.

Saludos!.
« Última modificación: 6 Abril 2014, 16:57 pm por leosansan » En línea

criser20

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: punto silla de una matriz
« Respuesta #4 en: 5 Abril 2014, 20:45 pm »

Para empezar tienes que arreglar lo de la matriz.

Como  ya te indiqué en dos de los temas anteriores, no puedes declararla antes de conocer sus dimensiones.


* Esto no:

Código
  1. int opc, f, c,  matriz[f][c] ;

* Esto si:

Código
  1. .........................
  2. int  f, c;
  3.  printf("numero de filas:");
  4.  scanf("%d", &f);
  5.  printf("numero de columnas:");
  6.  scanf("%d", &c);
  7.  int matriz[f][c];
  8. ...........................

Y respecto al tema del punto silla sólo tienes que seguir los pasos que te indicó noele1995.

Por ejemplo, primero calculas el máximo de cada columna (los valores de mayor y menor pones tu los que consideres, aunque para hacerlo bien habría que usar la librería limits.h y elegir el máximo=INT_MIN y mínimo=INT_MAX de los int):


Código
  1. int i,iM,jm ,j,k,mayor=-1000,menor=1000;
  2.  for (j=0; j<m; j++){
  3.    mayor=-1000,menor=1000;
  4.    for(i=0; i<n; i++) {
  5.      if (matriz[i][j]>mayor){
  6.        mayor=matriz[i][j];
  7.        iM=i;
  8.      }
  9.    }

Y una vez localizado el máximo de una columna, cosa que hace el código anterior, miras cual es el mínimo de la fila donde está ese máximo:

Código
  1. for (k=0; k<m-1; k++){
  2.      if (matriz[iM][k]<menor){
  3.        menor=matriz[iM][k];
  4.        jm=k;
  5.      }
  6.    }

Y ya sólo queda comparar si el mayor de la columna coincide con el mínimo de la fila correspondiente:

Código
  1. if (mayor==menor)
  2.      printf ("\nPunto de silla el a[%d][%d]=%d\n",iM,jm,matriz[iM][jm]);

Si aplicas lo anterior a la matriz:


obtendrás:

Espero que lo tengas ahora más claro.

Saludos!.


gracias y por cierto no sabras de algun libro que explique cosas como esta que me peuda servir para futuras referencias?
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: punto silla de una matriz
« Respuesta #5 en: 5 Abril 2014, 22:26 pm »

gracias y por cierto no sabrás de algún libro que explique cosas como esta que me pueda servir para futuras referencias?

En la página de inicio tienes un enlace a diversos libros muy válidos.

Si te digo la verdad he llegado a un punto en  que los libros sólo me dicen más de los mismo, en cambio las diversas cosas que aprendo  y muy interesantes en los diversos foros en los que participo, es crema.

Yo te aconsejo seguir de entrada dos o tres buenos libros y nada si te trabas en alguno de los ejercicios colgar en el foro tus avances. Seguro que con las respuestas que te ofrezcan los usuarios iras sacando poco a poco buenos códigos y/o prácticas de programación. La práctica lo es casi todo, eso si, con un nivel de  teoría correcto y profundo.  


¡¡¡¡ Saluditos! ..... !!!!


« Última modificación: 6 Abril 2014, 16:59 pm por leosansan » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
silla de ruedas a 80
Foro Libre
portaro 4 3,331 Último mensaje 28 Mayo 2010, 03:29 am
por Constance
Cambio de silla
Foro Libre
kaiserr 0 1,702 Último mensaje 24 Agosto 2012, 04:07 am
por kaiserr
Matriz con puntos de silla (lenguaje C)
Programación C/C++
NOB2014 9 14,550 Último mensaje 13 Agosto 2014, 16:29 pm
por NOB2014
SILLA GAMING 1337 INDUSTRIES ¿? Que os parece?
Dudas Generales
KrazyFlow 1 2,145 Último mensaje 14 Noviembre 2014, 03:44 am
por dRak0
Hallan un canguro abatido y atado a una silla en una carretera de Australia « 1 2 3 4 »
Foro Libre
El_Andaluz 30 15,584 Último mensaje 5 Julio 2017, 06:54 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines