0% encontró este documento útil (0 votos)
269 vistas21 páginas

Estructura de Datos t1

El documento presenta diferentes operaciones y funciones para trabajar con arreglos unidimensionales y bidimensionales en C++. En la sección de arreglos unidimensionales se muestran funciones para encontrar el menor elemento impar, invertir solo los elementos impares, encontrar el segundo menor elemento, ordenar un arreglo por selección y eliminar valores repetidos. La sección de arreglos bidimensionales incluye funciones para sumar, hallar promedios, máximos y mínimos de filas y columnas, así como eliminar filas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
269 vistas21 páginas

Estructura de Datos t1

El documento presenta diferentes operaciones y funciones para trabajar con arreglos unidimensionales y bidimensionales en C++. En la sección de arreglos unidimensionales se muestran funciones para encontrar el menor elemento impar, invertir solo los elementos impares, encontrar el segundo menor elemento, ordenar un arreglo por selección y eliminar valores repetidos. La sección de arreglos bidimensionales incluye funciones para sumar, hallar promedios, máximos y mínimos de filas y columnas, así como eliminar filas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

ESTRUCTURA DE

DATOS
TRABAJO T1
DOCENTE
Lourdes Amaya
luciana villanueva vasquez



Estructura de Datos

I. Arreglos Unidimensionales

1. Elimine el menor elemento impar de un array, e insrtelo en la 2da posicin.
#include <iostream>
#define tam 10
using namespace std;
int leer(int a[], int n)
{
int may=0;
for(int i=0; i<n; i++)
{
cout<<"Ingrese el elemento"<<i<<":"<<endl;
cin>>a[i];

}
return may;
}
int m(int a[], int n, int menor)
{
menor=a[0];

for(int i=0; i<n; i++)
{
if(a[i]%2 !=0)
{
if(a[i]<menor)
{
menor=a[i];

}

}

}

return menor;
}
int encontrarPosicion(int a[], int n, int menor, int pos)
{
menor=a[0];

for(int i=0; i<n; i++)
{
if((a[i]%2)!=0)
{

if(a[i]<menor)
{
pos=i;
}

}

}
return pos;
}
int eliminar(int a[],int y, int n)
{
for(int i=y; i<n; i++)
{
a[i]=a[i+1];
}
return n-1;
}
void imprimir(int a[], int n)
{
for(int i=0; i<n; i++)
{
cout<<a[i];
}
}
int agregar(int a[],int x, int y, int n)
{
for(int i=n; i>y; i--)
{
a[i]=a[i-1];

}
a[1]=x;
return n+1;
}
int main(int argc, char** argv)
{
int a[4],x,y,menor,n,pos;
cout<<"Ingrese la cantidad de elementos"<<endl;
cin>>n;
leer(a,n);
x=m(a,n,menor);
cout<<"\nMenor elemento:"<<x<<endl;
y=encontrarPosicion(a,n,menor,pos);
cout<<"Posicion:"<<y<<endl;
eliminar(a,y,n);
imprimir(a,n-1);
cout<<endl;
agregar(a,x,y,n);
cout<<endl;
imprimir(a,n+1);
return 0;
}







2. Invierta solo los elementos impares de un arreglo.
#include <iostream>
using namespace std;
int leer(int a[], int n)
{
for(int c=0; c<n; c++)
{
cout<<"Ingrese el elemento"<<c<<":"<<endl;
cin>>a[c];

}

}
int impar(int a[], int n, int imp[])
{
int x;
int nc=0;

for(int c=0; c<n; c++)
{
if(a[c]%2 !=0)
{
imp[c]=a[c];
nc=nc+1;
x=imp[c];
cout<<x<<endl;
}

}
return x;
}
int numimp(int a[], int n, int imp[], int nc, int r[])
{
for(int c=0; c<n; c++)
{
if(a[c]%2 !=0)
{
imp[c]=a[c];
nc=nc+1;
}
}
cout<<"\n"<<nc;
return nc;
}
void invertir(int n, int imp[], int r[], int nc)
{
for(int c=nc; c>0; c--)
{
r[c]=imp[c-1];
cout<<"\n"<<r[c];
}
}
int main()
{
int a[10],n,imp[10],r[10],nc=0;
cout<<"Ingrese cantidad"<<endl;
cin>>n;
leer(a,n);
impar(a,n,imp);
numimp(a,n,imp,nc,r);
invertir(n,imp,r,nc);
return 0;
}
3. Encuentre el segundo menor elemento de un arreglo.

#include <iostream>
using namespace std;
void leer(int a[], int n)
{
for(int i=0; i<n; i++)
{
cout<<"Ingrese el elemento"<<i<<":"<<endl;
cin>>a[i];
}
}
void ordenarBurbuja(int a[], int n)
{
int interruptor=1;
for(int i=0; i<n-1 && interruptor; i++)
{
interruptor=0;
for(int j=0; j<n-i-1; j++)
{
if(a[j]>a[j+1])
{
int aux;
interruptor=1;
aux=a[j];
a[j]=a[j+1];
a[j+1]=aux;
}
}
}
}
int main()
{
int a[50],n,menor;
cout<<"Ingrese la cantidad de elementos"<<endl;
cin>>n;
leer(a,n);
ordenarBurbuja(a,n);
menor=a[1];
cout<<"Segundo menor elemento:"<<menor;
return 0;
}





















4. Ordene un arreglo por seleccin.
#include <iostream>
using namespace std;
void leer(int a[], int n)
{
for(int i=0; i<n; i++)
{
cout<<"Ingrese el elemento"<<i<<":"<<endl;
cin>>a[i];
}
}
void ordenarSeleccion(int a[],int n)
{
int i,j,aux;
for(i=1;i<n;i++)
{
aux=a[i];
for(j=i-1;j>=0;j--)
{
if(aux>a[j])
{
a[j+1]=aux;
break;
}
else
{
a[j+1]=a[j];
}
}
if(j==-1)
{
a[0]=aux;
}
}
}
void imprimir(int a[], int n)
{
for(int i=0; i<n; i++)
{
cout<<a[i];
}
}
int main()
{
int a[50];
int n;
cout<<"Ingrese la cantidad de elementos:"<<endl;
cin>>n;
leer(a,n);
ordenarSeleccion(a,n);
imprimir(a,n);
return 0;
}










5. Elimine todas las ocurrencias (valores repetidos) de un arreglo.

#include <stdio.h>
#include <iostream>
using namespace std;
void leer(int vo[], int n)
{
for(int i=0; i<n; i++)
{
cout<<"Ingrese el elemento"<<i<<":"<<endl;
cin>>vo[i];

}
}
void repetidos(int vo[], int va[], int vr[], int n)
{
int c,num,x=0,y,z=0;
for (int i=0;i<n;i++)
{
c=0;
num=vo[i];
va[x]=num;
x++;
for(y=0;y<n;y++)
{
if (va[y]==num )
{
c++;
}
}
if(c==1)
{
vr[z]=num;
z++;
}
}
cout<<"Vector resultante:"<<endl;
for (int i=0;i<z;i++)
{
cout<<vr[i]<<endl;
}
}
int main ()
{
int vo[10];
int va[10];
int vr[10];
int c,num,x=0,y,z=0,n;
cout<<"Ingrese la cantidad de elementos del arreglo:"<<endl;
cin>>n;
leer(vo,n);
repetidos(vo,va,vr,n);
return 0;
}








II. Arreglos Bidimensionales
1. En una tienda las siguientes prendas son las que ms se venden: polos, zapatos y medias.
Cabe destacar que las cantidades se expresan en miles. En el ao 2011, se vendieron 10 mil
polos, 5 mil medias y mil zapatos; al ao siguiente, 2 mil polos, 4 mil medias y 6 mil zapatos;
mientras que en el 2013, 3 mil polos, 2 mil medias y 7 mil zapatos;
#include <iostream>
#include <conio.h>
using namespace std;

void leerElemento(int a[][20])
{

for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
cout<<"Ingrese elemento"<<"["<<i<<"]["<<j<<"]:";
cin>>a[i][j];
}
}

}
void imprimirMatriz(int a[][20])
{
cout<<"Matriz de produccion"<<endl;
for(int i=0; i<3; i++)
{
cout<<"\n";
for(int j=0; j<3; j++)
{
cout<<"\t";
cout<<a[i][j];
}
}
}
//Filas
//suma de filas
int sumarFilas(int a[][20])
{
int s,sf,sumaFilas[20];
for(int i=0; i<3; i++)
{
s=0;
for(int j=0; j<3; j++)
{
s=a[i][j]+s;
}
sumaFilas[i]=s;
sf=sumaFilas[i];
cout<<"\n"<<sf;
}
return sf;
}
//promedio de filas
int promedioFilas(int a[][20], float pr[])
{
int p;
int s,sumaFilas[20];
for(int i=0; i<3; i++)
{
s=0;
for(int j=0; j<3; j++)
{
s=a[i][j]+s;
}
sumaFilas[i]=s;
pr[i]=sumaFilas[i]/3;
p=pr[i];
cout<<"\n"<<p;
}
return p;
}
//mayor elemento por fila
int mayorElemFila(int a[][20], int mf[])
{
int y;
mf[0]=0;
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
if(a[i][j]>mf[i])
{
mf[i]=a[i][j];
}
}
y=mf[i];
cout<<y<<endl;
}
return y;
}
//menor elemento por fila
int menorelemento(int a[][20], int menor[])
{
int l;
menor[0]=a[0][0];
for (int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
if (a[i][j]<menor[i])
{
menor[i]=a[i][j];
}
}
l=menor[i];
cout<<l<<endl;
}
return l;
}
//COLUMNAS
//suma de columnas
int sumarColumnas(int a[][20])
{
int s,sc,sumaCol[20];
for(int j=0; j<3; j++)
{
s=0;
for(int i=0; i<3; i++)
{
s=a[i][j]+s;
}
sumaCol[j]=s;
sc=sumaCol[j];
cout<<"\n"<<sc;
}
return sc;
}
//mayor elemento de cada columna
int mayorElemCol(int a[][20], int mc[])
{
mc[0]=0;
int c;
for(int j=0; j<3; j++)
{
for(int i=0; i<3; i++)
{
if(a[i][j]>mc[j])
{
mc[j]=a[i][j];
}
}
c=mc[j];
cout<<c<<endl;
}
}
//menor elemento de cada columna
int menorEleCol(int a[][20], int menc[])
{
menc[0]=a[0][0];
int mencol;
for(int j=0; j<3; j++)
{
for(int i=0; i<3; i++)
{
if(a[i][j]<menc[j])
{
menc[j]=a[i][j];
}
}
mencol=menc[j];
cout<<mencol<<endl;
}
return mencol;
}
//promedio de columna
int promedioColumnas(int a[][20], int pc[])
{
int prc;
int s,sumaCol[20];
for(int j=0; j<3; j++)
{
s=0;
for(int i=0; i<3; i++)
{
s=a[i][j]+s;
}
sumaCol[j]=s;
pc[j]=sumaCol[j]/3;
prc=pc[j];
cout<<"\n"<<prc;
}
return prc;
}
//FILAS Y COLUMNAS
//maxima suma de columna
int sumaMaxCol(int a[][20])
{
int maxc=0;
int s,sc,sumaCol[20];
for(int j=0; j<3; j++)
{
s=0;
for(int i=0; i<3; i++)
{
s=a[i][j]+s;
}
sumaCol[j]=s;
if(sumaCol[j]>maxc)
{
maxc=sumaCol[j];
}
}
cout<<maxc;
return maxc;
}
//maxima suma de fila
int sumaMaxFil(int a[][20])
{
int maxf=0;
int s,sf,sumaFilas[20];
for(int i=0; i<3; i++)
{
s=0;
for(int j=0; j<3; j++)
{
s=a[i][j]+s;
}
sumaFilas[i]=s;
if(sumaFilas[i]>maxf)
{
maxf=sumaFilas[i];
}
}
cout<<maxf;
return maxf;
}
//eliminar fila
void eliminarFila(int a[][20], int pos)
{
for(int i=pos; i<3; i++)
{
for(int j=0; j<3; j++)
{
a[i][j]=a[i+1][j];
}
}
}
void imprimirMatriz(int a[][20], int f, int c)
{
for(int i=0; i<f; i++)
{
cout<<"\n";
for(int j=0; j<c; j++)
{
cout<<"\t";
cout<<a[i][j];
}
}
}
int main()
{
int a[20][20];
//fila
int mf[3];
int menor[3];
float pr[3];
//columna
int mc[3];
int menc[3];
int pc[3];
//eliminar
int pos;
int f=3;
int c=3;
leerElemento(a);
imprimirMatriz(a);
cout<<"\n";
cout<<"\nSuma de las filas"<<endl;
sumarFilas(a);
cout<<"\n";
cout<<"\nMayor elemento de cada fila"<<endl;
mayorElemFila(a,mf);
cout<<"\nMenor elemento de cada fila"<<endl;
menorelemento(a,menor);
cout<<"\nPromedio de las filas"<<endl;
promedioFilas(a,pr);
cout<<"\n";
cout<<"\nSuma de las columnas"<<endl;
sumarColumnas(a);
cout<<"\nMayor elemento de cada Columna"<<endl;
mayorElemCol(a,mc);
cout<<"\nMenor elemento de cada columna"<<endl;
menorEleCol(a,menc);
cout<<"\nPromedio de las columnas"<<endl;
promedioColumnas(a,pc);
cout<<"Mayor suma de las filas"<<endl;
sumaMaxFil(a);
cout<<"\nMayor suma de las columnas"<<endl;
sumaMaxCol(a);
cout<<"\nEliga fila que desee eliminar"<<endl;
cin>>pos;
eliminarFila(a,pos);
cout<<"\nMatriz resultante:"<<endl;
imprimirMatriz(a,f-1,c);
return 0;
}







II. Arreglos de Cadenas: ( 7 puntos)
1. Programar funciones anlogas a strlen(), strcpy(), strcat() y strcmp().
a. Funcin strlen
#include <iostream>
#include <string.h>
using namespace std;
int longitud(char c[])
{
int l=0;
while(c[l]!='\0')
{
l++;
}
return l;
}
int main()
{
char c[]="luciana";
cout<<"la cadena:"<<c<<endl;
cout<<"longitud de la cadena"<<longitud(c);
return 0;
}
b. Funcion strcpy
#include <iostream>
#include <string.h>
#define tam 50
using namespace std;
int longitud(char c[])
{
int l=0;
while(c[l]!='\0')
{
l++;
}
return l;
}
int main(int argc, char** argv)
{
char c1[tam]="hola";
char c2[tam]="luciana";
int x;
x=longitud(c2);
cout<<"cadena 1:"<<c1<<endl;
cout<<"cadena 2:"<<c2<<endl;
for(int i=0; i<x; i++)
{
c1[i]=c2[i];
}
cout<<"Ahora la cadena 1 es:"<<c1;
return 0;
}
c. Funcin strcat
#include <iostream>
#include <string.h>
#define tam 50
using namespace std;
int longitud(char c[])
{
int l=0;
while(c[l]!='\0')
{
l++;
}
return l;
}
void unir(char c1[], char c2[], int x, int y)
{
for(int i=0; i<x; i++)
{
c2[y+i]=c1[i];
}
c2[y+x]='\0';
cout<<"Ahora la cadena 2 es:"<<c2;
}
int main(int argc, char** argv)
{
char c1[tam]="luciana";
char c2[tam]="villanueva";
int x,y;
cout<<"cadena 1:"<<c1<<endl;
cout<<"cadena 2:"<<c2<<endl;
x=longitud(c1);
y=longitud(c2);
unir(c1,c2,x,y);
return 0;
}
d. Funcin strcmp

2. Realice una Matriz de Caracteres y indique la palabra que forman las filas, las
columnas y las diagonales.
#include <iostream>
using namespace std;
void leer(char p[][50], int f, int c)
{
for(int i=0; i<f; i++)
{
for(int j=0; j<c; j++)
{
cout<<"Letra"<<endl;
cin>>p[i][j];
}
}
}
void imprimir(char m[][50], int f, int c)
{
for(int i=0; i<f; i++)
{
cout<<"\n";
for(int j=0; j<c; j++)
{
cout<<"\t";
cout<<m[i][j];
}
}
cout<<endl;
}
void columnas(char m[][50], int f, int c, char vc[])
{
cout<<"\nColumna:"<<endl;
for(int j=0; j<c; j++)
{
for(int i=0; i<f; i++)
{
vc[j]=m[i][j];
cout<<vc[j];
}
}
cout<<endl;
}
void filas(char m[][50], int f, int c, char vf[])
{
cout<<"\nFila:"<<endl;
for(int i=0; i<f; i++)
{
for(int j=0; j<c; j++)
{
vf[i]=m[i][j];
cout<<vf[i];
}
}
cout<<endl;
}
void diagonalPrincipal(char m[][50], int f, int c, char dp[])
{
cout<<"\nFila:"<<endl;
for(int i=0; i<f; i++)
{
for(int j=0; j<c; j++)
{
if(i==j)
{
dp[i]=m[i][j];
cout<<dp[i];
}
}
}
}
int main()
{
char m[50][50];
char vc[50];
char vf[50];
char dp[50];
int f,c;
cout<<"ingrese numero de filas"<<endl;
cin>>f;
cout<<"ingrese numero de columnas"<<endl;
cin>>c;
leer(m,f,c);
imprimir(m,f,c);
columnas(m,f,c,vc);
filas(m,f,c,vf);
diagonalPrincipal(m,f,c,dp);
return 0;
}
3. Ordene varias palabras por el mtodo de burbuja y seleccin.
3.1. Mtodo de burbuja
#include <iostream>
#include <string.h>
using namespace std;
void leer(char a[][10], int np)
{
int c=0;
do
{
cout<<"Ingrese palabra: ";
cin>>a[c];
c++;
}
while (c<np);
}
void ordenarBurbuja(char a[][10], int np, char temp[])
{
int j, i;
for(i = 0; i < np-1; i++)
{
for(j = np-1; j > i; j--)
{
if(strcmp(a[j-1],a[j]) > 0)
{
strcpy(temp, a[j-1]);
strcpy(a[j-1], a[j]);
strcpy(a[j], temp);
}
}
}
for(int i=0; i<np; i++)
{
cout<<a[i];
cout<<"\n";
}
}
int main()
{
int tam, i;
char a[10][10];
char temp[10];
int np;
int c=0;
cout<<"Ingrese el numero de palabras"<<endl;
cin>>np;
leer(a,np);
ordenarBurbuja(a,np,temp);
return 0;
}
3.2. Mtodo de seleccin
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include <iostream>
using namespace std;
void leer(char a[][20], int np, char aux[])
{
int i,j,k,c=0;
do
{
cout<<"Ingrese palabra: ";
cin>>a[c];
c++;
}
while (c<np);
for(i=0; i<c-1; i++)
{
k=i;
strcpy(aux, a[i]);
for(j=i+1; j<c; j++)
{
if(strcmp(a[j], aux)<0)
{
k=j;
strcpy(aux, a[j]);
}
}
strcpy(a[k],a[i]);
strcpy(a[i],aux);
}
for(i=0; i<c; i++)
{
cout<<a[i];
cout<<"\n";
}
}
int main()
{
char a[10][20];
char aux[20];
int np;
int i,j,k,c=0;
cout<<"Ingrese el numero de palabras"<<endl;
cin>>np;
leer(a,np,aux);
return 0;
}
IV. Estructuras ( 5 puntos)
1.- Realice un mantenimiento completo:
#include <conio.h>
#include<string.h>
using namespace std;
struct DPersona
{
char nombre[20];
int edad;
char sexo;
float estatura;
};
//opcion 1
void leerPersona(DPersona personas[],int cantidad)
{
for(int i=0;i<cantidad;i=i+1)
{
cout<<"\nPersona"<<i<<":"<<endl;
cout<<"Ingrese el nombre de la persona: ";
fflush(stdin);
gets(personas[i].nombre);
cout<<"Ingrese la edad: ";
cin>>personas[i].edad;
cout<<"Ingrese el sexo: ";
cin>>personas[i].sexo;
cout<<"Ingrese la estatura: ";
cin>>personas[i].estatura;
}
}
//otros
void imprimirPersona(DPersona personas[],int cantidad)
{
for(int i=0;i<cantidad;i=i+1)
{
cout<<"\nPersona"<<i<<":"<<endl;
cout<<"Nombre de la persona: "<<personas[i].nombre<<endl;
cout<<"Edad: "<<personas[i].edad<<endl;
cout<<"Sexo: "<<personas[i].sexo<<endl;
cout<<"Estatura: "<<personas[i].estatura<<endl;
}
}
//opcion 2
void consultaDatos(DPersona personas[], int nreg)
{
cout<<"Nombre de la persona: "<<personas[nreg].nombre<<endl;
cout<<"Edad: "<<personas[nreg].edad<<endl;
cout<<"Sexo: "<<personas[nreg].sexo<<endl;
cout<<"Estatura: "<<personas[nreg].estatura<<endl;
}
void ingresarNuevo(DPersona personas[], int nreg)
{
cout<<"Ingrese el nombre de la persona: ";
fflush(stdin);
gets(personas[nreg].nombre);
cout<<"Ingrese la edad: ";
cin>>personas[nreg].edad;
cout<<"Ingrese el sexo: ";
cin>>personas[nreg].sexo;
cout<<"Ingrese la estatura: ";
cin>>personas[nreg].estatura;
}
void modificaDatos(DPersona personas[], int nreg)
{
cout<<"---Datos actuales---"<<endl;
consultaDatos(personas,nreg);
cout<<"---Modifique datos:---"<<endl;
ingresarNuevo(personas,nreg);
}
// opcion 3
int eliminaDatos(int nreg, DPersona personas[], int cantidad)
{
char rpta;
cout<<"Esta seguro que deseea eliminar algun dato(s/n)?"<<endl;
cin>>rpta;
if(rpta=='s')
{
for(int i=nreg; i<cantidad-1; i++)
{
personas[i]=personas[i+1];
cantidad--;
}
}
return cantidad;
}
//opcion 4
void ordenarSeleccion(DPersona personas[], int cantidad)
{
int i,j;
for(i=1;i<cantidad;i++)
{
for(j=cantidad-1;j>=i;j--)
{
if(strcmp(personas[j-1].nombre,personas[j].nombre) <0)
{
DPersona aux;
aux=personas[j-1];
personas[j-1]=personas[j];
personas[j]=aux;
}
}
}
}

int main()
{
DPersona personas[50];
int cantidad;
int nreg,x;
cout<<"Numero de personas que va ingresar:"<<endl;
cin>>cantidad;
int opc;
char rpta;
while(1)
{
cout<<"\nMenu de opciones"<<endl;
cout<<"1. Ingresar datos"<<endl;
cout<<"2. Modifica datos"<<endl;
cout<<"3. Elimina datos"<<endl;
cout<<"4. Ordena datos"<<endl;
cout<<"Elija opcion"<<endl;
cin>>opc;
switch(opc)
{
case 1: leerPersona(personas,cantidad);
break;

case 2:cout<<"Dato a modificar?"<<endl;
cin>>nreg;
modificaDatos(personas,nreg);
break;

case 3: cout<<"---Datos---"<<endl;
consultaDatos(personas,nreg);
cout<<"Dato que desea eliminar?"<<endl;
cin>>nreg;
x=eliminaDatos(cantidad,personas,nreg);
break;

case 4:cout<<"---Ordenamiento por orden alfabetico(mayor a menor)---"<<endl;
ordenarSeleccion(personas,cantidad);
imprimirPersona(personas,cantidad);

}
}
return 0;
}







2. Realice un ejemplo de estructuras anidadas.
#include <iostream>
#include <string>
using namespace std;
struct datosPersonales
{
string nombre[10];
int edad;
char esciv;
};
struct datosFisicos
{
float altura;
float peso;
};
struct datosEconomicos
{
int numhijos;
float sueldo;
int numtarj;
};
struct global
{
char sexo;
datosPersonales dp;
datosFisicos df;
datosEconomicos de;
};
void ordenarBurbuja(global persona[], int n)
{
global aux;
int interruptor=1;
int i,j;
for(i=0; i<cant-1 && interruptor; i++)
{
interruptor=0;
for(j=0; j<cant-i-1; j++)
{
if(persona[j].[Link]>per[j+1].[Link])
{
interruptor=1;
aux=persona[j];
persona[j]=persona[j+1];
persona[j+1]=aux;
}
}
}
}
void leerPersona(global persona[], int n)
{
for(int i=0; i<n; i++)
{
cout<<"---Datos Personales---";
cout<<"\nPersona"<<i<<":"<<endl;
cout<<"Ingrese el nombre:"<<endl;
cin>>persona[i].[Link][i];
cout<<"Ingrese la edad:"<<endl;
cin>>persona[i].[Link];
cout<<"Ingrese el estado civil:"<<endl;
cin>>persona[i].[Link];
cout<<"---Datos Fisicos---";
cout<<"\nIngrese la altura:"<<endl;
cin>>persona[i].[Link];
cout<<"Ingrese el peso:"<<endl;
cin>>persona[i].[Link];
cout<<"---Datos Economicos---";
cout<<"\nIngrese el numero de hijos:"<<endl;
cin>>persona[i].[Link];
cout<<"Ingrese el sueldo:"<<endl;
cin>>persona[i].[Link];
cout<<"Ingrese el numero de tarjetas:"<<endl;
cin>>persona[i].[Link];

}
}
void imprimirDatos(global persona[], int n)
{
for(int i=0; i<n; i++)
{
cout<<"---Datos Personales---";
cout<<"\nPersona"<<i<<":"<<endl;
cout<<"Nombre:"<<endl;
cout<<persona[i].[Link][i];
cout<<"Edad:"<<endl;
cout<<persona[i].[Link];
cout<<"Estado civil:"<<endl;
cout<<persona[i].[Link];
cout<<"---Datos Fisicos---";
cout<<"\nAltura:"<<endl;
cout<<persona[i].[Link];
cout<<"Peso:"<<endl;
cout<<persona[i].[Link];
cout<<"---Datos Economicos---";
cout<<"\nNumero de hijos:"<<endl;
cout<<persona[i].[Link];
cout<<"Sueldo:"<<endl;
cout<<persona[i].[Link];
cout<<"Numero de tarjetas:"<<endl;
cout<<persona[i].[Link];

}
}
int main()
{
int n;
datosPersonales p;
global persona[10];
cout<<"Numero de personas que va ingresar:"<<endl;
cin>>n;
leerPersona(persona,n);
ordenarBurbuja(persona,n);
imprimirDatos(persona,n);
return 0;
}

También podría gustarte