Cita de: leosansan en 5 Abril 2014, 20:25 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 (cpp) [Seleccionar]int opc, f, c, matriz[f][c] ;
* Esto si:Código (cpp) [Seleccionar]
.........................
int f, c;
printf("numero de filas:");
scanf("%d", &f);
printf("numero de columnas:");
scanf("%d", &c);
int matriz[f][c];
...........................
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 (cpp) [Seleccionar]int i,iM,jm ,j,k,mayor=-1000,menor=1000;
for (j=0; j<m; j++){
mayor=-1000,menor=1000;
for(i=0; i<n; i++) {
if (matriz[i][j]>mayor){
mayor=matriz[i][j];
iM=i;
}
}
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 (cpp) [Seleccionar]for (k=0; k<m-1; k++){
if (matriz[iM][k]<menor){
menor=matriz[iM][k];
jm=k;
}
}
Y ya sólo queda comparar si el mayor de la columna coincide con el mínimo de la fila correspondiente:Código (cpp) [Seleccionar]if (mayor==menor)
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?