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;
}