/* fichero ordena.c */ /* Este programa pide diez palabras y las ordena por orden alfabetico */ #include #include void main(void) { char **cadena; /* declaración de puntero a matriz de caracteres */ int i, j; int n; char temp[20]; /* declaración del array auxiliar donde almacenaremos temporalmente cada palabra */ char *aux; /* decalaracion de puntero a carácter, auxiliar */ printf("%s%s\n", "Este programa ordena diez palabras", "introducidas por teclado."); printf("Introduzca las diez palabras:\n"); cadena = malloc(10*sizeof(char*)); for (i=0; i<10; i++) { printf("Palabra %d: ", i+1); scanf("%s", temp); cadena[i] = malloc((strlen(temp)+1)*sizeof(char)); strcpy(cadena[i], temp); } for (i=0; i<9; i++) { for(j=i+1; j<10; j++) { if ((strcmp(cadena[i], cadena[j]))>0) { aux = cadena[i]; cadena[i] = cadena[j]; cadena[j] = aux; } } } printf("La cadena ordenada es:\n"); for (i=0; i<10; i++) printf("%s\n", cadena[i]); }