<div dir="ltr">Hola Ali,<div class="gmail_extra"><br><div class="gmail_quote">2013/12/30 Ali Rincon <span dir="ltr"><<a href="mailto:alrincon1963@hotmail.com" target="_blank">alrincon1963@hotmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
He estado investigando como "eliminar" filas en una matriz cualquiera y creo que conseguí hacer algo simpático y funcional. Aunque no es lo que exactamente estoy tratando de solucionar, si me sirve para mejorar el código y hacerlo un poco mas general. Sin embargo tengo un problema con la salida de la matriz final la cual no consigo hacerla bien, es decir, se mezclan algunas filas al final y desearía saber si alguien pudiera decirme cual es el error o que es lo que me hace falta en el código.<br>

<br></blockquote><div><br></div><div>Veamos el código fuente.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

Aquí envío el código:<br>
<br><br></blockquote><div><br></div><div>[CORTE]</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

    //Remover la fila donde se encuentre el valor<br>
<br>
    for(k=posicion; k<indices; k++)<br></blockquote><div><br></div><div><div>Esto va a suponer un problema, porque usas el índice 'k+1'. Por lo tanto, si 'k' llega al último índice, entonces accederás a la siguiente "fila", que no existe. Por ejemplo, si 'indices' es 10, entonces k=9, pero accederás a la fila 10, que obviamente está fuera de las limitaciones del array.</div>
</div><div><br></div><div>Debes usar 'indices-1', por lo que aconsejo que hagas la resta de 'indices' antes del bucle 'for'; esto es,</div><div><br></div><div>indices--;</div><div>for( k=posicion; k<indices; k++ )<br>
</div><div><div>  for( j=0; j<10; j++ )</div></div><div>    matriz[k][j] = matriz[k+1][j];</div><div><br></div><div>Ahora, los intervalos de los índices son correctos:<br><br>k    := [posicion,8]</div><div>k+1 := [posicion+1,9]</div>
<div><br></div><div><br></div><div>Otro matiz a destacar es que al buscar el valor para eliminar su fila, sigues buscando a pesar de haberlo encontrado. Deberías salirte de los bucles 'for' una vez que hayas encontrado lo que buscas. Dicho esto, también deberías tener en cuenta la posibilidad de que no encuentre tal valor pedido a eliminar. Si es el caso, entonces no deberías eliminar nada, especialmente por el hecho de que 'posicion' no contiene un valor deseado - es basura; esto puede provocar grandes errores, ya que usas 'posicion' como índice en la matriz.</div>
<div><br></div><div><br></div><div>Espero que esto te aclare las dudas.</div><div><br></div><div>Steven</div><div><br></div></div></div></div>