Implementar una función que recibe una lista de enteros L y un número entero n de forma que modifique la lista mediante
el borrado de todos los elementos de la lista que tengan este valor: Ejemplo: sea N={1,2,4,5,6,2,7,2}
y el número a buscar sea 2, entonces la lista quedará así; N={1,4,5,6,7}*/
Código
#include <cstdlib> #include <iostream> #include <stdio.h> #include <conio.h> #include <string> using namespace std; int lista[8]; int auxiliar[8],x,y; void llenar(),listar(),buscar(); int tope; int pos, val,opc,b,v,valor,num,i; int main () { int opcion; while(1){ //system("CLS");// LImpiar pantalla cout<<endl<<"1. ingresar numero"<<endl; cout<<endl<<"2. listar numero"<<endl; cout<<endl<<"3. buscar"<<endl; cout<<endl<<"4. salir"<<endl; cout<<endl<<endl<<"INGRESE LA OPCION: "; cin>>opcion; cout<<endl<<endl; switch(opcion){ case 1: llenar(); break; case 2: listar(); break; case 3: buscar(); break; case 4: exit(0); break; default: cout<<"Opcion no valida"; break; } } } void llenar() { if(tope+1>8){ cout<<"La pila esta llena"; cout<<endl; getch (); } else{ for (int i=0;i<8;i++) { cout<<" Digite el numero: "; cin>>num; cout<<endl; lista[i]=num; tope++; } } } void listar() { for(int t=0;t<tope;t++) { cout<<endl<<"La posicion ["<<t<<"] contiene: "<<lista[t]<<endl; } } void buscar(){ cout<<" El numero a buscar: "; cin>>val; cout<<endl; b=0; for (int s=0;s<8;s++) { if (lista[s]==val) { b=1; v=s; valor=lista[s]; }//fin if }//fin for if (b==1) { cout<<"El numero ha sido encontrado "<<endl<<endl<<endl; cout<<" en la posicion: "<<v<<" "<<endl<<endl; cout<<" Con el valor: "<<valor<<" "<<endl<<endl; cout<<" Para retirar marque 1 "<<endl; cout<<" Seleccione la Opcion: "; cin>>opc; cout<<endl<<endl; if (opc==1){ for (int z=0;z<tope;z++) { for (x=0;x<=tope-valor;x++) { auxiliar[x]=lista[tope]; tope--; y++; }//fin for }//fin for tope=valor-1; for (int j=0;j<y;j++) { lista[tope]=auxiliar[j]; tope++; y--; }//fin for }//fin if else { if (b!=1) { cout<<" El numero No ha sido encontrado "<<endl<<endl; getch (); exit (0); }//fin if }//fin else }//fin }
Al realizar la busqueda del numero a eliminar o sustituir lo hace bien el problema es en el momento de eliminarlo, tengo probles al pasar los datos a la lista auxiliar, cualquier ayuda se los agradeceria.