Código
//*el problema es que no realiza la busqueda completa solo encuentra un registro si la opcion ingresada es 0 y por defecto tampoco me deja hacer una eliminacion por busqueda ni modificacion*// #include <stdio.h> #include <conio.h> #include <stdlib.h> #define p printf #define s scanf #define MAX 5 int buscar(int x); using namespace std; struct usuario { char nombre[20],apellido[20], sexo[20], nivel[40],carrera[30]; int telefono,no_lista; } e[MAX]; int cont=0; int buscar(int x); void capturar() { p("Nombre: "); fflush(stdin); gets(e[cont].nombre); p("Apellido: "); fflush(stdin); gets(e[cont].apellido); p("Sexo: "); fflush(stdin); gets(e[cont].sexo); p("Numero telefonico: "); s("%d",&e[cont].telefono); p("Nivel Maximo de Estudios: "); fflush(stdin); gets(e[cont].nivel); p("Carrera de Especialidad: "); fflush(stdin); gets(e[cont].carrera); cont++; } void mostrar() { for(int i=0; i<cont; i++) { p("\nNombre:\t %s",e[i].nombre); p("\nApellido:\t %s",e[i].apellido); p("\nSexo:\t %s",e[i].apellido); p("\nNumero Telefonico:\t %d",e[i].telefono); p("\nNivel Maximo de Estudios:\t %s",e[i].nivel); p("\nCarrera de Especialidad:\t %s",e[i].carrera); p("\nOPRIME ENTER PARA CONTINUAR"); getch(); system("cls"); } } void modificar() { int op,i,pr; pr=buscar(5); if(pr!=-1) { do { p("\n1) Nombre: %s",e[pr].nombre); p("\n2) Apellido: %s",e[pr].apellido); p("\n3) Sexo: %s",e[pr].sexo); p("\n4) Numero Telefonico: %d",e[pr].telefono); p("\n5) Nivel Maximo de Estudios: %s",e[pr].nivel); p("\n6) Carrera de especialidad: %s",e[pr].carrera); p("\n7) Salir) "); p("\n¿QUE DECEA MODIFICAR?"); s("%d",&op); switch(op) { case 1: p("Nombre: "); fflush(stdin); gets(e[pr].nombre); break; case 2: p("Apellido: "); fflush(stdin); gets(e[pr].apellido); break; case 3: p("Sexo: "); fflush(stdin); gets(e[pr].sexo); break; case 4: p("Numero telefonico: "); s("%d",&e[pr].telefono); break; case 5: p("Nivel Maximo de Estudios: "); fflush(stdin); gets(e[pr].nivel); break; case 6: p("Carrera de Especialidad: "); fflush(stdin); gets(e[pr].carrera); break; } }while(op!=7); } } void eliminar() { int pr,i; char r; pr=buscar(4); if(pr!=-1) { p("¿LO DECEA ELIMINAR S/N)? "); s("%s", &r); if(r=='s'||r=='S') { for(i=pr; i<=cont; i++) e[i]=e[i+1]; cont=cont+1; } } } 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); if(cont==0) p("\n EL REGISTRO NO EXISTE"); else for(int i=0; i<cont; i++) if(nl==e[i].no_lista) { if(x!=5) { p("\n Nombre: %s",e[i].nombre); p("\n Apellido %s",e[i].apellido); p("\n Sexo %s",e[i].sexo); p("\n Numero Telefonico %d",e[i].telefono); p("\n Nivel Maximo de Estudios %s",e[i].nivel); p("\n Carrera de Especialidad %s",e[i].carrera); } b=1; pos=i; break; } if(b==0) { p("\nNO EXISTE REGISTRO"); pos=-1; } if(x==3) { p("\nOPRIME ENTER PARA CONTINUAR"); getch(); } return(pos); } int main() { int opc; cont=0; do { system("cls"); p("\n1) AGREGAR \n 2) MOSTRAR\n 3) BUSCAR\n 4) ELIMINAR\n 5) MODIFICAR\n 6) SALIR\n"); s("%d",&opc); if(opc==1) capturar(); if(opc==2) mostrar(); if(opc==3) buscar(3); if(opc==4) eliminar(); if(opc==5) modificar(); }while (opc!=6); return 0; }