Colección de citas famosas - Colección de firmas - Cómo comparar el orden lexicográfico c

Cómo comparar el orden lexicográfico c

Ingrese los nombres de n estudiantes a través del teclado y luego genere los resultados de acuerdo con el diccionario.

Diseño de algoritmo:

(1) Defina una matriz de caracteres bidimensionales para almacenar los nombres de n estudiantes.

Nombre del personaje [N] [13];

(2) Utilice el método de clasificación selectiva para ordenar N cadenas a través de la función de comparación strcmp().

③Resultados de salida

Idea de clasificación selectiva

(1) En el primer paso, seleccione el registro con el valor de palabra clave más pequeño de n registros como El primer registro;

k = 0;

for (j = 1; j si (k! = 0) { t = a[k]; a[k ]= a【I 】; a【I】= t;}/*Intercambio de unidad K y unidad 0*/

(2) En la segunda pasada, de los N-1 registros restantes Seleccione el registro con la clave más pequeña valor como segundo registro

k = 1;

for (j = 1+1; j if (k! = 1) { t = a[k]; a[ k] = a[I]; a[I] = t;}

(3) Por lo general, en el paso I, seleccione la palabra clave con el valor de palabra clave más pequeño. El registro se extrae de los n- restantes. I+1 como el registro I-ésimo (I = 1, 2,...n-1)

k = I-1

for (j = I; j if (k! = 1) { t = a [k]; a [k] = a [I]; a [I] = t }

Para una matriz A de n elementos, El segmento de programa para seleccionar y ordenar en lenguaje C es:

for(I = 0; i { k = i

for(j = I+ 1; j if (k! = I ) { t = a [k]; a [k] = a [I]; a [I] = t }

}

Exactamente similar, tratamos los dos- nombre de carácter de matriz de caracteres dimensionales[N][13] como N matrices de caracteres unidimensionales:

Nombre[0], nombre[1], nombre[2],…, nombre [N-1].

En la sección del programa de clasificación de selecciones, compare dos números:

if (a [j] cambia a: if (strcmp (nombre [j], nombre[k])

Y declaración de intercambio de datos: { t = a[k]; a[k] = a[I]; a[I] = t;}

Cambiar a: { strcpy(t , nombre[k]); strcpy(nombre[k], nombrea[I]); strcpy(nombre[I], t);}

Lista completa de programas

#Contiene "stdio.h"

#Contiene "string.h"

main()

{ nombre de cahr[10 ]【13】, temperatura【13】 ; int I;

for(I = 0; I<10;i++){

Printf("Ingrese los nombres de %d estudiantes Nombre:\n",I+1) ;

get(nombre[I]);

}

for(I = 0;I<9 ;i++)

{ k = I;

for (j = I+1; j & lt10;j++) if (strcmp (nombre[j], nombre[k]) <0)k = j;

si (k! = I) { strcpy(temp, nombre[k]);

strcpy(nombre[k], nombre[I]); strcpy(nombre[I], temp);

}

}

printf("Los nombres de 10 estudiantes están ordenados según el diccionario: \n");

for(I = 0; i<10 ;i++) printf ("\n % s", nombre [I]

}

);