Hola Edinson,<br><br>
<div class="gmail_quote">2010/12/3 Edinson Vivas <span dir="ltr"><<a href="mailto:edinson.vivas@gmail.com">edinson.vivas@gmail.com</a>></span><br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">Buenas Noches amigos, quisiera saber si me pueden ayudar a resolver un<br>problema que tengo con un programa de inscripcion que estoy haciendo<br>
como trabajo para la universidad en C++...</blockquote>
<div> </div>
<div>[CORTE]</div>
<div> </div>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">esta funcion de ingresar los datos del estudiante esta mediante un<br>menu... cada vez que se registra un estudiante el programa pregunta si<br>
quiere inscribir otro o volver al menu...<br><br>si vuelvo al menu e intento registrar un nuevo usuario, me<br>sobreescribe los que ya estan, esto porque lo tengo con un contador:<br><br>Ejemplo:<br><br>indice = 0<br>do<br>
{<br>indice++;<br>.<br>..<br>cin >> lista[indice].nombre;<br>...<br>....<br>indice <= 100;<br>}while (opcion != 'n'<br><br>ahora, mi pregunta y quisiera saber si me pueden ayudar, es como hago<br>para que no me sobreescriba los datos ya registrados, sino que los<br>
desplace y me permita registrar en cualquier ocacion un nuevo<br>"estudiante".</blockquote>
<div> </div>
<div>Tal y como describes el problema, éste se basaría en que reiniciabas 'indice' para que vuelva a empezar desde 0, por lo que sobreescribías los registros del comienzo. Sin embargo, el código que nos das no describe este caso. Sugiero que verifiques el uso de 'indice' que actúa como la cantidad actual de elementos existentes. Quizá te interese renombrar esta variable para describir su tarea; por ejemplo, 'nCantActual' o algo parecido.</div>

<div> </div>
<div>Cuando el usuario quiera agregar un nuevo registro, comprueba que la cantidad actual de elementos no supere a la cantidad máxima. No queremos sobrepasarnos de los límites del array. Si se puede agregar, entonces actualiza la cantidad actual incrementándola, para así asignar nuevos datos al último registro.</div>

<div> </div>
<div>Si acaso quieres eliminar los últimos registros, entonces comprueba que la cantidad actual no sea 0, ya que no tiene sentido eliminar un registro de una lista vacía. Si existen registros, entonces disminuye la cantidad actual de elementos. No podemos "borrar" un registro, porque no se puede eliminar memoria literalmente; simplemente ignoramos esos datos guardados.</div>

<div> </div>
<div> </div>
<div>Si de verdad quieres agregar un nuevo registro en otra parte de la lista, entonces sí tienes que dejar "hueco". Esto significa que tendrás que copiar registro a registro del último al posterior (el nuevo último), del penúltimo al último, y así sucesivamente hasta dejar el hueco que quieres.</div>

<div> </div>
<div> </div>
<div>La otra posibilidad es usando listas dinámicamente enlazadas en lugar de arrays (arreglos), para tener mayor control de la estructura y además no tenemos estos problemas de "dejar huecos". De todas maneras, sospecho que no has llegado a ver estos conceptos, por lo que no diré más al repsecto por si acaso te confundo.</div>

<div> </div>
<div> </div>
<div>Espero que esto aclare la duda.</div>
<div> </div>
<div>Steven</div>
<div> </div></div>