/*Ejercicios
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}*/
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.
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 (cpp) [Seleccionar]
#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.