Programación de dos maneras.
# incluir ltstdio.h gt
# incluir ltstdlib.h gt
# incluir ltstring.h gt
#define mycpy( x, y) {strcpy(x.id,y.id);strcpy(x.name,y.name);}
estructura typedef estudiante
{
char name[8]; //Nombre
char id[10]; //Número de estudiante
}Estudiante;
Estudiante;/ / Definir variables globales
int n;
Void sort(student * s, int n)//Clasificación de burbujas de pequeña a grande.
{
int i, j, flag = 1;
Estudiante trabajador temporal
for(I = 0; i ltn amp amp bandera; i )
{
bandera = 0
for(j = 0; j ltn-1; j )
{
if(strcmp(s[j].id, s[j 1].id)>; 0)
{
bandera = 1;
mycpy(temp, s[j]);
mycpy(s[j], s[j 1]);
mycpy(s [j 1], temp);
}
}
}
}
Entrada no válida ( estudiantes, entero)
{
int I;
Printf("Ingrese el número de estudiantes: ");
scanf (" d ", ampn);
s =(student *)malloc(sizeof(student)* n); //Espacio abierto dinámicamente
for(I = 0; i) ltn; i )
{
Printf("Por favor ingrese el nombre del estudiante d:", I 1);
Obtener (s[i]. Nombre);
Printf("Ingrese el ID de estudiante del estudiante d:", I
Get (s[i].id); p>}
}
salida nula (estudiante *s, int n)
{
int I;
for (I = 0; iltn; i)
{
Printf("Por favor ingrese el nombre del estudiante d: s\n ", i 1, s[i ]. Nombre) ;
Printf("Ingrese el ID de estudiante del estudiante d: s\n ", i 1, s[i]. id
}); p>
}
Intdel _ id (estudiante * s, char * id, int n) // Eliminar según número de estudiante.
{
int i,j;
for(I = 0;iltn;i)
{
if(strcmp(id,s[i]).
id) == 0)
{
for(j = I; j ltn; j )
{
mycpy(s [j], s[j 1]);
}
n-; //El número total de personas se reduce en uno.
Descanso;
}
}
}
Voiddel_name (estudiante * s, char * nombre, int n)//Eliminar por nombre.
{
int i,j;
for(I = 0;iltn;i)
{
if(strcmp(nombre, s[i].id) == 0)
{
for(j = I; j ltn; j )
{
mycpy(s[j], s[j 1]);
}
n- //El número total de personas es reducido en uno.
Romper;
}
}
}
int main()
{
Entrada (s, n); //Entrada
sort(s, n); //Ordenar
Salida (s, n); //Salida
del_id(s, "", n); //Eliminar por ID de estudiante
del_name(s, "", n); //Eliminar por nombre
del_id(s, "", n); p>
p>
Sistema("pausa");
Devuelve 0;
}