Algo asi jejeje:
   
Código C:
Ver original- #include <stdio.h> 
- #include <stdlib.h> 
- #include <string.h> 
-   
- #define MAXSIZEWORDS 25 
-   
- typedef char TPalabra[MAXSIZEWORDS]; //Defino un tipo para hacer el codigo mas facil de entender 
- //--------------------------------------------------------------------------- 
-   
- //Prototipos de funciones 
- TPalabra* RellenarPalabras(int nPalabras); 
- int BuscarMenor(TPalabra *palabras, int nPalabras); 
- int BuscarMayor(TPalabra *palabras, int nPalabras); 
- void ShowWordsWithLong(unsigned int largo, int nPalabras, TPalabra *palabras); 
- //--------------------------------------------------------------------------- 
-   
- int main() 
- { 
-    unsigned int nPalabras,mayor,menor; 
-    TPalabra *palabras; 
-   
-    printf("Introduce el numero de palabras a introducir: "); 
-   
-    palabras = RellenarPalabras(nPalabras); //Creo el array de palabras y lo relleno 
-   
-    if(palabras == NULL){ 
-       printf("\nNo se pudo allocar la memoria necesaria para las palabras.\n\n"); 
-    }else{ 
-       mayor = BuscarMayor(palabras,nPalabras); //Busco el largo mayor de las palabras 
-       menor = BuscarMenor(palabras,nPalabras); //Busco el largo menor de las palabras 
-       if(mayor == 0){ //Si no se introdujo ninguna palabra... 
-          printf("\nNo se introdujo ninguna palabra.\n"); 
-       }else{ //Si se introdujo alguna palabra... 
-          printf("\nLa palabra mas larga tiene %i caracteres.\n\n",- mayor ); //Muestro el largo mayor
 
-          printf("Palabras con el largo mayor:\n"); 
-          ShowWordsWithLong(mayor, nPalabras, palabras); //Muestro las palabras con el mayor largo 
-   
-          printf("\nLa palabra mas corta tiene %i caracteres.\n\n",- menor ); //Muestro el largo mayor
 
-          printf("Palabras con el largo menor:\n"); 
-          ShowWordsWithLong(menor, nPalabras, palabras); //Muestro las palabras con el mayor largo 
-       } 
-   
-       if(palabras != NULL) 
-          free(- palabras ); //Libero la memoria solicitada para almacenar las palabras
 
-    } 
-    return 0; 
- } 
- //--------------------------------------------------------------------------- 
-   
- int BuscarMenor(TPalabra *palabras, int nPalabras) 
- { 
-    int i; 
-    unsigned int menor=MAXSIZEWORDS, largo; 
-   
-    if(palabras != NULL){ 
-       //Relleno el array de cadenas 
-       for(i=0;i<nPalabras;i++){ 
-          largo  = strlen(- palabras [- i ]); //Obtengo el largo de la palabra
-          if(largo < menor) //Si es mayor que el largo mayor lo guardo 
-             menor = largo; 
-       } 
-    } 
-    return menor; 
- } 
- //--------------------------------------------------------------------------- 
-   
- int BuscarMayor(TPalabra *palabras, int nPalabras) 
- { 
-    int i; 
-    unsigned int mayor=0,largo; 
-   
-    if(palabras != NULL){ 
-       //Relleno el array de cadenas 
-       for(i=0;i<nPalabras;i++){ 
-          largo  = strlen(- palabras [- i ]); //Obtengo el largo de la palabra
-          if(largo > mayor) //Si es mayor que el largo mayor lo guardo 
-             mayor = largo; 
-       } 
-    } 
-    return mayor; 
- } 
- //--------------------------------------------------------------------------- 
-   
- TPalabra* RellenarPalabras(int nPalabras) 
- { 
-    int i,largoPalabra; 
-    TPalabra *palabras; 
-   
-    palabras  = malloc(sizeof(- TPalabra ) *-  nPalabras ); //Solicito memoria para almacenar las palabras
-    if(palabras != NULL){ 
-       //Limpio la memoria reservada 
-       memset(- palabras ,'0',sizeof(- TPalabra ) *-  nPalabras );
 
-   
-       fflush(- stdin ); //Limpio el buffer de entrada
 
-   
-       //Relleno el array de cadenas 
-       for(i=0;i<nPalabras;i++){ 
-          printf("Introduce elemento [%i]: ",- i );
 
-          fgets(- palabras [- i ],- MAXSIZEWORDS ,- stdin ); //Con fgets se evita el derbordamiento
 
-          fflush(- stdin ); //Limpio el buffer de entrada
 
-          largoPalabra  = strlen(- palabras [- i ])-1;
-          palabras[i][largoPalabra] = '\0'; //Sustituyo el '\n' por '\0' 
-       } 
-    } 
-    return palabras; 
- } 
- //--------------------------------------------------------------------------- 
-   
- void ShowWordsWithLong(unsigned int largoPalabra, int nPalabras, TPalabra *palabras) 
- { 
-    int i; 
-   
-    //Muestro todas las palabras cuyo largo sea igual al mayor 
-    for(i=0;i<nPalabras;i++) 
-       if(strlen(- palabras [- i ]) ==-  largoPalabra )
 
- }