PHP - Punto Silla

   
Vista:

Punto Silla

Publicado por Thomas (1 intervención) el 17/07/2015 08:48:06
Buenas como estan todos?

Tengo un error que quizas sea bastante simple pero me esta volviendo loco y no logro que me de como es.
Debo sacar el punto silla de una matriz (tamaño definido por el usuario), pero al momento de buscarla me suelta en ocasiones un valor que nada tiene que ver, como ejemplo:

Punto silla en este caso es el valor que resulta ser el maximo en su fila y el minimo en su columna. Algo tipo:

4 3 5
1 5 6
7 8 9

En ese caso seria el numero 5 el punto de silla. Sin mas que añadir les muestro el codigo con su debido formulario, agradecería mucho si pueden ayudarme ya que este es un ejemplo que luego debo adaptar a modelo vista controlador pero eso lo haré por mi cuenta a partir de esto.

CODIGO HTML DE FORMULARIO:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Insertar Valores</title>
</head>
<body>
	<form action="arreglo.php">
		Filas:
		<input type="text" name="filas">
		<br>
		Columnas
		<input type="text" name="columnas">
		<input type="submit">
	</form>
</body>
</html>

CODIGO PHP:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
 
	$filas=$_REQUEST['filas'];
	$columnas=$_REQUEST['columnas'];
    $maximoFilas[$filas];
    $minimoColumnas[$columnas];
 
    for($i=0;$i<$filas;$i++)
    {
 
        $maximoFilas[$i]= -999;
    }
 
     for($j=0;$j<$columnas;$j++){
 
        $minimoColumnas[$j]= 999;
    }
 
    echo '<table border="1" width="820" align="center" >';
	for($i=0; $i < $columnas; $i++)
		{
            echo '<tr>';
    			for($j=0; $j < $filas; $j++)
    				{
                        echo '<td>';
 
        				$matriz[$i][$j] = rand(1,100);
 
        				echo $matriz[$i][$j]."\n";
 
                        echo '</td>';
    				}
            echo '</tr>';
                    echo '<p>';
 
 
		}
    echo '</table>';
 
        for($a=0;$a<$columnas;$a++)
    {
 
        for($b=0;$b<$filas;$b++)
        {
 
                if($matriz[$a][$b]>$maximoFilas[$a])
                {
 
                    $maximoFilas[$a]=$matriz[$a][$b];
 
 
                }
 
 
                if($matriz[$a][$b]<$minimoColumnas[$b])
                {
                    $minimoColumnas[$b]=$matriz[$a][$b];
                }
 
        }
    }
 
 
    for ($c=0; $c < $columnas ; $c++) {
 
        for ($d=0; $d < $filas; $d++) {
 
            if($maximoFilas[$c] = $minimoColumnas[$d]){
                $puntosilla=$maximoFilas[$c];
            }
        }
    }
 
    echo 'El punto de silla es : '.$puntosilla.' Ubicado en la fila '.$d.' Y columna '.$c.'<p>';
 
 
 
?>

Saludos y gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder