viernes, 16 de septiembre de 2011

Punteros a vectores

Ejemplo de punteros a vectores


#include "stdafx.h"
#include "iostream"
#include "conio.h"

using namespace std;

void tamaño(int *n)
{
cout<<"Numero de elementos: ";cin>>*n;
}

void llenarVector(int *p,int n)//*p sería es la posición de memoria del vector y corresponde al primer elemento
{
for(int i=0;i<n;i++)
{
cout<<"V["<<i+1<<"] = ";
cin>>*(p+i);//Para desplazarnos a los siguientes elementos del vector basta hacer *(p+i) donde i aumenta de 0 a n
}
}

void mostrarVector(int *p,int n)
{
for(int i=0;i<n;i++)
cout<<endl<<"V["<<i+1<<"] = "<<*(p+i);
}

int mayorValor(int *p,int n)
{
int max=-99999;//Un valor muy bajo

for(int i=0;i<n;i++)
{
if(*(p+i)>max)
max=*(p+i);
}

return max;
}

int menorValor(int *p,int n)
{
int min=99999;//un valor muy alto

for(int i=0;i<n;i++)
{
if(*(p+i)<min)
min=*(p+i);
}

return min;
}

double promedio(int *p,int n)
{
double suma=0;

for(int i=0;i<n;i++)
{
suma+=*(p+i);
}

return suma/n;
}

void ordenar(int *p,int n)
{
int aux;

for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<n;j++)
{
if(*(p+i)>*(p+j))
{
aux=*(p+i);
*(p+i)=*(p+j);
*(p+j)=aux;
}
}
}
}

void main()
{
int n;

tamaño(&n); //Le enviamos la posición de memoria de la variable n

int *V = new int [n];

cout<<endl;

llenarVector(V,n);

cout<<endl<<"Mayor Valor es "<<mayorValor(V,n)<<endl;
cout<<"Menor Valor es "<<menorValor(V,n)<<endl;
cout<<"Promedio es "<<promedio(V,n)<<endl;
cout<<"Vector ordenado:"<<endl;
ordenar(V,n);
mostrarVector(V,n);

_getch();
}

No hay comentarios:

Publicar un comentario