Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/10/2009, 11:51
razlher
 
Fecha de Ingreso: mayo-2009
Mensajes: 15
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta Ayuda urgente con un problemita de funciones

hola tengo un problema ,no comprendo porque en mi programa ,en el procedimiento insertar no incrementa " num_elem" cuando vuelvo a mostrar el arreglo, se supone que tiene que actualizarse y mostrame un elemento mas en el vector.
Si le añado en el procedimiento &num_elem si incrementa,porque sucede eso?
Expliquenme por favor, gracias.


Código:
#include<iostream>
#include<conio.h>
#define max 15
using namespace std;

void raya();
void ingresovector(int a[max],int n);
void mostrarvector(int a[max],int n);
void insertar(int a[max],int num_elem,int p,int dato);

int main()
{
    system("color 1a");
    int p,num_elem,n,dato,numeroDatos,pos;
    int a[max];
    raya();
    cout<<" \tIngreso de numero de elementos al vector: ";
    cin>>num_elem;
    ingresovector(a,num_elem);
    mostrarvector(a,num_elem);
    cout<<" \tIngrese el dato que desea ingresar al arrglo: ";
    cin>>dato;
    cout<<" \tIngrese la posicion que desea insertar: ";
    cin>>pos;
    insertar(a,num_elem,pos-1,dato);
    mostrarvector(a,num_elem);
    raya();
    system("pause");
    
    return 0;
    
}
void raya()
{
     cout<<"\n";
     cout<<"\t----------------------------------------";
     cout<<"\n";
}
void ingresovector(int a[max],int n)
{
     cout<<"\n";
     cout<<" \tIngrese datos:\n ";
     for(int i=0;i<n;i++)
     {  cout<<" \tDato["<<i+1<<"]: ";
             cin>>a[i];
     }
}
void mostrarvector(int a[max],int n)
{
     cout<<"\n";
     cout<<" \tEl arreglo ingresado es:\n ";
     for(int i=0;i<n;i++)
     {
         cout<<"\tDato["<<i+1<<"]: ";    
         cout<<a[i]<<"\n";
         
     }
     
}
void insertar(int a[max],int num_elem,int p,int dato)
{
     
     for(int i=num_elem-1;i>=p;i--)
     {
         a[i+1]=a[i];
     }
     a[p]=dato;
     num_elem=num_elem+1;
     
}