struct alumno
C/Visual C
Publicado el 13 de Octubre del 2020 por Daniel (194 códigos)
986 visualizaciones desde el 13 de Octubre del 2020
nPrograma que dado una lista de alumnos. Devuelve la lista Ordenada por matricula
#include<stdio.h>
#include<string.h>
struct alumno
{
int mat;
char nom[50];
char dir[50];
int tel[50];
};
main(){
int i, n, j,incrmnt;
int temp1, temp2;
printf("\nPrograma que dado una lista de alumnos.Devuelve la lista Ordenada por matricula \n");
printf("Numero de alumnos que va a ingresar:\n");
scanf("%d",&n);
struct alumno alu[n];
int matriz[n][2];
for(i=0;i<n;i++){
printf("Escribe la matricula del alumno %d: \n",i+1);
scanf("%d",& alu[i].mat);
printf("Escribe el nombre del alumno %d: \n",+1);
scanf("%s", alu[i].nom);
printf("Escribe la direccion del alumno %d:\n ",i+1);
scanf("%s",alu[i].dir);
printf("Escribe el telefono del alumno %d:\n ",i+1);
scanf("%d",&alu[i].tel);
printf("\n");
printf("\n");
}
for (i=0;i<n;i++){
matriz[i][1]=alu[i].mat;
matriz[i][2]=i;
}
incrmnt = n/2;
while (incrmnt > 0){
for (i=incrmnt; i<n; i++){
j=i;
temp1=matriz[i][1];
temp2=matriz[i][2];
while ((j >= incrmnt) && (matriz[j-incrmnt][1] > temp1)){
matriz[j][1] = matriz[j-incrmnt][1];
matriz[j][2] = matriz[j-incrmnt][2];
j = j - incrmnt;
}
matriz[j][1]=temp1;
matriz[j][2]=temp2;
}
incrmnt=incrmnt/2;
}
for (i=0;i<n;i++){
printf("Alumno %d\n",i+1);
printf("Matricula: %d\n",alu[matriz[i][2]].mat);
printf("Nombre: %s\n", alu[matriz[i][2]].nom);
printf("Direccion: %s\n",alu[matriz[i][2]].dir);
printf("Telefono: %d\n",alu[matriz[i][2]].tel);
printf("\n");
printf("\n");
}
getchar();
getchar();
}
Comentarios sobre la versión: 1.0 (0)
No hay comentarios