Buenas a.9471!
No he compilado tu codigo...pero a primera vista creo que si pide los 6 datos pero no ha 5 personas porque la void capturar() no esta dentro de un bucle para que se ejecute 5 veces.
Tambien veo que no usas bien los if() else()...
si pones:
if(condicion1) instruccion1;
else instruccion2;
instruccion3;
se ejecutaran instrcion1 y 3 o instrucion 2 y 3
te lo digo por estas lineas:
int buscar(int x)
{
int nl,b=0,pos;
if(x==4) p("\n Dame el Numero de lista a eliminar:");
else if(x==5)
p("Introduce el numero de lista a modificar:");
else
p("introduce el numero de lista a buscar:");
s("%d",&nl);
Esta linea se ejecuta
s("%d",&nl);
aunque no deberia ejecutarse si no entra en el else;
Para ello usa los corchetes:
if(condicion1){
instruccion11;
instruccion12;
}
else if(condicion2){
instruccion21;
instruccion22;
}
else{
instruccion31;
instruccion32;
}
Y para hacer tu programa mas legible alinea correctamente las funciones() y los void()
Tal y como lo tienes escrito todos las funciones() y los void() deberian estar alineados a la izquierda ya que no tienes funciones dentro de funciones
Utiliza este estilo (de corchetes)que hace mas facil la lectura.
void 1(){
//codigo....
//codigo....
//codigo....
}
void 2(){
//codigo....
//codigo....
//codigo....
if(condicion){
//codigo....
//codigo....
}
else{
//codigo....
//codigo....
}
}
Es una buena practica de programacion para facilitar la lectura