Hola tengo que hacer un programa en c que lea nombres desde teclado y los ordene alfabeticamente.
He hecho el programa para que acepte 10 nombres. El codigo es el siguiente :
codigo[#include <stdio.h>
#include <stdlib.h>
void main(void)
{
char **cadena, *aux;
int i, j, n;
char temp[20];
printf("%s%s\n", "Este programa ordena diez nombres",
"introducidos por teclado.");
printf("Introduzca los diez nombres:\n");
cadena = (char**)malloc(10*sizeof(char*));
for (i=0; i<10; i++) {
printf("Nombre %d: ", i+1);
scanf(" %[^\n]", temp);
cadena = (char*)malloc((strlen(temp)+1)*sizeof(char));
strcpy(cadena, temp);
}
for (i=0; i<9; i++)
for (j=i+1; j<10; j++)
if ((strcmp(cadena, cadena[j])) > 0) {
aux = cadena;
cadena = cadena[j];
cadena[j] = aux;
}
printf("La lista ordenada es:\n");
for (i=0; i<10 ; i++)
printf("%s\n", cadena);
}]
Mi pregunta es, que es lo que tendria que cambiar para que el programa acepte "n" nombre hasta el caracter EOF.
Lo he intentado de varias formas pero siempre me da warning por culpa de los punteros.
Alguien me podria ayudar,?
Muchas gracias