Como está utilizando C ++, sería más fácil y seguro almacenar sus cadenas como std :: string y almacenarlas en un vector std ::. La clasificación sería una simple cuestión de llamar a std :: sort en él.
Pero, si quieres hacerlo en C-way:
#include
#include
#include
#define M 10000
- ¿Qué son los algoritmos simples?
- Dadas dos cadenas de longitud N, ¿cómo encuentro la ventana máxima de patrones coincidentes si pueden mutarse?
- ¿Cuáles son algunas de las lagunas en el algoritmo de reserva de entradas de irctc?
- ¿Cómo empiezo a aprender o fortalecer mi conocimiento de las estructuras de datos y algoritmos?
- ¿Qué sitios web o aplicaciones usan el algoritmo de correspondencia para el cual los profesores Roth y Shapley ganaron el Premio Nobel en 2012?
int main ()
{
nombres de caracteres [M] [15];
int n, i;
scanf (“% d”, & n);
para (i = 0; i <n; i ++)
scanf (“% s”, nombres [i]);
qsort (nombres, n, 15, (int (*) (const void *, const void *)) strcmp);
para (i = 0; i <n; i ++)
printf (“% s \ n”, nombres [i]);
}
Su código no funciona debido a la forma en que llama a la función qsort
:
- el segundo argumento debe ser el tamaño de la matriz (entonces:
n
) - El tercer argumento debe ser el tamaño de cada elemento en la matriz (
15
)
Ahora, así es como se podría hacer de manera C ++, utilizando contenedores y STL:
#include
#include
#include
#include
int main ()
{
std :: vector nombres;
std :: string buffer;
int n, i;
std :: cin >> n;
para (i = 0; i <n; i ++)
{
std :: cin >> buffer;
nombres.push_back (búfer);
}
std :: sort (names.begin (), names.end ());
para (i = 0; i <n; i ++)
{
std :: cout << nombres [i] << std :: endl;
}
}