<div dir="ltr">Hola Ali,<div class="gmail_extra"><br><div class="gmail_quote">2014/1/1 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">
Holq Steven, gracias nuevamente por tu gentileza en responderme. Resolví mi problema y era simplemente que había olvidado una instrucción simple y que la había pasado por alto. Con introducir printf("\n") la matriz final reducida sale correctamente en la parte de mostrar matriz final. Ahora con relación a lo que dices, es cierto, existe una inconsistencia cuando k=9, Sin embargo, si introduzco indices--; antes del primer bucle for, que es para leer las filas, el programa arroja un resultado incorrecto. Simplemente se lo coloque a la condición del primer bucle for( k=posición; k<indices-1; k++ ), y listo el programa corre y es mas consistente.<br>

<br>
Ahora, deseo pedirte, si puedes ayudarme en una complicación adicional al código anterior. Ahora tengo la misma matriz anterior 10x10, pero el numero 1 (por ejemplo), se repite varias veces en diferentes filas y se desea eliminar nuevamente dichas filas. Obviamente la dimensionalidad de la matriz resultante es importante, pero en el caso general ésta no se sabe. Aquí si, pues estamos tratando con una matriz simple 10x10. Aquí te envió lo que hice, el programa corre y muestra la matriz final reducida para el caso de un valor escogido (en este caso escogí el valor de 1), pero tengo problemas con las filas, pues después de cada bucle for, la matriz se va reduciendo y el programa lee esta ultima matriz y las filas donde aparece el numero 1, no coinciden con la matriz original, obviamente. Mi problema es como hago para corregir este fallo.<br>

<div class="im"><br></div></blockquote><div><br></div><div>- Hay dos soluciones:<br><br>1. Ajusta el valor mostrado que se desplaza según la cantidad de filas eliminadas. Siguiendo tu ejemplo, tenemos,</div><div><br></div>
<div><span style="font-family:arial,sans-serif;font-size:13px">El valor se encuentra en la fila: 0</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">El valor se encuentra en la fila: 2</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">El valor se encuentra en la fila: 6</span><br></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Cuando debería ser:<br>
<br></span><span style="font-family:arial,sans-serif;font-size:13px">El valor se encuentra en la fila: 0</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">El valor se encuentra en la fila: 3</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">El valor se encuentra en la fila: 8</span><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><br></div><div>Podemos ajustar cada índice por el número de eliminaciones - guardado en 'contarfilas'; esto es,</div>
<div><br></div><div><span style="font-family:arial,sans-serif;font-size:13px">El valor se encuentra en la fila: 0 + 0</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">El valor se encuentra en la fila: 2 + 1</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">El valor se encuentra en la fila: 6 + 2</span><br></div><div><br></div><div>En general,</div><div><br></div><div><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">printf( "El valor se encuentra en la fila: %d\n", i </span>+ contarfilas );</div>
<div><br></div><div><br></div><div>2. En lugar de hacer la búsqueda y eliminación en la misma iteración, separamos las dos tareas. Esto implica que tenemos que guardar los índices para las filas a eliminar. Por ejemplo,</div>
<div><br></div><div>int aFilasParaEliminar[10] = { 0 };</div><div>...</div><div>// Buscar filas a eliminar</div><div>contarFilas = 0;</div><div><div class="im" style="font-family:arial,sans-serif;font-size:13px">for( i=0; i<indices; i++ )</div>
<div class="im" style="font-family:arial,sans-serif;font-size:13px">  for( j=0; j<10; j++ )</div><div class="im" style="font-family:arial,sans-serif;font-size:13px">    if( matriz[i][j] == valor )<br></div><div class="im" style="font-family:arial,sans-serif;font-size:13px">
    {<br>      printf( "El valor se encuentra en la fila: %d\n", i );<br></div></div><div>      aFilasParaEliminar[contarFilas++] = i;</div><div>    }</div><div><br></div><div>// Eliminar las filas encontradas</div>
<div>...<br></div><div><br></div><div><br></div><div>- Deberías usar 'indices-contarFilas' si no eliges la segunda solución. No interesa rebasar la cantidad actual de filas en la matriz, porque estaríamos repitiendo la comprobación y posiblemente hallemos erróneamente una fila previamente eliminada al final de la matriz, que la queremos eliminar otra vez. Por ejemplo,</div>
<div><br></div><div>1   2   3   4   5   6   7   8   9   10</div><div>...</div><div><span style="font-family:arial,sans-serif;font-size:13px">81  82  83  84  85  86  87   1  89  90</span><br style="font-family:arial,sans-serif;font-size:13px">
<br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">91  1   93  94  95  96  97  98  99 100</span><br></div><div><br></div><div>Recuerda que al eliminar una fila, tu algoritmo realmente la eliminar mudando todas las otras filas a una fila anterior, por lo que obtendremos:<br>
<br><div>...</div><div><span style="font-family:arial,sans-serif;font-size:13px">81  82  83  84  85  86  87   1  89  90</span><br style="font-family:arial,sans-serif;font-size:13px"><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">91  1   93  94  95  96  97  98  99 100</span><br></div></div><div><div><br></div><div><span style="font-family:arial,sans-serif;font-size:13px">91  1   93  94  95  96  97  98  99 100</span><br>
</div></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Y luego, será:<br><br></span><div><div>...</div><div><div><span style="font-family:arial,sans-serif;font-size:13px">91  1   93  94  95  96  97  98  99 100</span><br>
</div><div></div><span style="font-family:arial,sans-serif;font-size:13px"><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div>91  1   93  94  95  96  97  98  99 100</span><br></div></div><div>
<div><br></div><div><span style="font-family:arial,sans-serif;font-size:13px">91  1   93  94  95  96  97  98  99 100</span><br></div></div></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Aunque tu algoritmo no realice la copia, en este ejemplo sí indicará que ha encontrado otras dos filas a eliminar, cuando actualmente no deberían existir. Esto ocurre cuando se debe eliminar la última fila, porque durante el proceso de eliminación, sólo mudamos los datos, pero los datos de la última fila siguen existiendo. Por ello, debes procurar usar la cantidad actual. Como no quieres modificar 'indices', entonces tienes que reajustar la cantidad con el desplazamiento 'contarFilas'.</span></div>
<div><br></div><div><br></div><div>Espero que esto te oriente.</div><div><br></div><div>Steven</div><div><br></div></div></div></div>