Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Borrar dato del vector: cual es mi error?

Estas en el tema de Borrar dato del vector: cual es mi error? en el foro de C/C++ en Foros del Web. Hola quisiera que me ayuden con este problema, el procediemiento borrar no funciona, cuando escojo esa opcion y luego agrego la posicion a borrar el ...
  #1 (permalink)  
Antiguo 03/11/2009, 19:18
 
Fecha de Ingreso: mayo-2009
Mensajes: 15
Antigüedad: 15 años
Puntos: 0
Pregunta Borrar dato del vector: cual es mi error?

Hola
quisiera que me ayuden con este problema, el procediemiento borrar no funciona, cuando escojo esa opcion y luego agrego la posicion a borrar el programa termina. Con los demas procedimientos regreso al menu, y puedo mostrar el vector. No se cual sea mi error ,por favor diganme cual es?

Código vectores::
Ver original
  1. #include<iostream>
  2. #include<conio.h>
  3. #define max 15
  4. using namespace std;
  5. void menu();
  6. void raya();
  7. void ingresovector(int a[max],int n);
  8. void mostrarvector(int a[max],int n);
  9. void borrar(int a[max], int &num_elem,int p);
  10.  
  11. int main()
  12. {
  13.     system("color 1a");
  14.     int p,num_elem,n,dato,pos;
  15.     char opcion;
  16.     int a[max];
  17.     do{
  18.         menu();
  19.         opcion=getch();
  20.         switch(opcion)
  21.         {
  22.                       case'1':system("cls");
  23.                       raya();
  24.                       cout<<" \tIngreso de numero de elementos al vector: ";
  25.                       cin>>num_elem;
  26.                       ingresovector(a,num_elem);
  27.                       getch();
  28.                       break;
  29.                       case'2':system("cls");
  30.                       mostrarvector(a,num_elem);
  31.                       getch();
  32.                       break;
  33.                       case'3':system("cls");
  34.                       raya();
  35.                       cout<<"\tIngrese la posicion del elemento que desea eliminar ";
  36.                       cin>>pos;
  37.                       borrar(a,num_elem,pos-1);
  38.                       getch();
  39.                       break;
  40.                      
  41.         }system("cls");
  42.     }while(opcion!='4');
  43.    
  44.     return 0;
  45.    
  46. }
  47. void menu()
  48. {
  49.      raya();
  50.      cout<<"\t************** Vectores ***************\n\n";
  51.      cout<<"\tOperaciones con vectores\n";
  52.      cout<<"\tCapturar datos ............. [1]\n";
  53.      cout<<"\tMostrar vector ............. [2]\n";
  54.      cout<<"\tBorrar dato del vector.......[3]\n";
  55.      cout<<"\tSalir .......................[4]\n\n";
  56.      cout<<"\tIngrese opcion: ";
  57. }
  58.      
  59.      
  60.      
  61. void raya()
  62. {
  63.      cout<<"\n";
  64.      cout<<"\t----------------------------------------";
  65.      cout<<"\n";
  66. }
  67. void ingresovector(int a[max],int n)
  68. {
  69.      cout<<"\n";
  70.      cout<<" \tIngrese datos:\n ";
  71.      for(int i=0;i<n;i++)
  72.      {  cout<<" \tDato["<<i+1<<"]: ";
  73.              cin>>a[i];
  74.      }
  75. }
  76. void mostrarvector(int a[max],int n)
  77. {
  78.      cout<<"\n";
  79.      cout<<" \tEl arreglo ingresado es:\n ";
  80.      for(int i=0;i<n;i++)
  81.      {
  82.          cout<<"\tDato["<<i+1<<"]: ";    
  83.          cout<<a[i]<<"\n";
  84.          
  85.      }
  86.      
  87. }
  88.  
  89. void borrar(int a[max], int &num_elem,int p)
  90. {
  91.      for(int i=p;p<=num_elem-1;i++)
  92.      {
  93.              a[i]=a[i+1];
  94.      }
  95.      num_elem=num_elem-1;
  96. }
  #2 (permalink)  
Antiguo 04/11/2009, 11:17
Avatar de Anubis_Slash  
Fecha de Ingreso: mayo-2009
Ubicación: aqui y haya
Mensajes: 173
Antigüedad: 15 años
Puntos: 5
Respuesta: Borrar dato del vector: cual es mi error?

reemplaza esto:

for(int i=p;p<=num_elem-1;i++)


por esto:

for(int i=p;i<=num_elem-1;i++)

lo unico que tenias mal era la p, la reempazas por la i...


saludos
__________________
Bienvenidos los karmas.
Quejas, sugerencias o dudas, se awantan......
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:38.