#include <stdio.h>
#include <string.h>
 
void ordenar(int n,char cad[50][30]);
void printa (int n,char cad[50][30]);
 
int main()
{
      int n=0;
      char cad[50][30];
      
      puts("Introdueix cadenas(. para terminar):n");
      do
      {
      printf("Cadena %d: ", n+1);
      gets(cad[n]);
      fflush(stdin);
      }while((0!=strcmp(cad[n++],".")) || (n>50)); //ESTA CONDICION ESTA MAL CREO
 
      n--; //elimino la ultima cadena
      
      ordenar(n,cad);
      printa(n,cad);
      
getchar();
getchar();
}
void ordenar(int n,char cad[50][30])
{
     char *temp[30],i,elem;
 
     /* depura esta parte del codigo
         seguila paso a paso y fijate el contenido de lo que te marco */
 
      for(elem=0; elem<n-1; elem++){ 
             for(i=elem+1; i<n; i++){
                  if(strcmp(cad[elem],cad[i])>0) /*evalua el contenido de esta condicion */
                  {
                      *temp=*cad[elem]; /*fijate el contenido*/
                      *cad[elem]=*cad[i]; /*fijate el contenido*/
                      *cad[i]=*temp; /*fijate el contenido*/
                  }             
             }
      }
}
void printa (int n,char cad[50][30])
{
     int i;
     
      printf("nLes cadenes ordenades alfabeticament son:n");
      for(i=0; i<n; i++){
          printf("nCadena %d: %s", i+1, cad[i]);
      }
 
}