ma questo assomiglia al mio stesso compito



auhauhauhauhahuahuuhahuahuauhahuahua

io sono fermo e non so dove andare a parare.....

questa è la mia realizzazione.

codice:
# include <stdlib.h>
# include <stdio.h>
# include <string.h>

# define N 10
# define L 15

struct parolario {char parola [L];
                 }dizionario [N];

void minuscolo( char stringa[] )
    { int ln, i;
      ln = strlen(stringa);
      for( i=0; i<ln; i++ )
         if( stringa[i]>='A' && stringa[i]<='Z' )
	   stringa[i] = stringa[i] + 32;
    };
    	           
void leggi ()
     { int i=0;
       char c [L];
       do {scanf("%s", & c);
           minuscolo(c);
           strcpy( dizionario [i].parola, c );
           i++;
          }while ( 0!=strcmp(c,"*") && i<=N );
     };
          
void stampa( int a, int b )
     { int i;
       for( i=a; i<b; i++ )
          printf("\n\n%d) %s", (i+1), dizionario[i].parola);
     };

void inverti( char stringa1[], char stringa2[] )
     { char app[L];
       strcpy(app,stringa1);
       strcpy(stringa1,stringa2);
       strcpy(stringa2,app);
     };     

void insert( struct parolario dizionario[], int a, int b )
     { int punt;
       punt = a+1;
       do{ if( 0<strcmp(dizionario[punt-1].parola,dizionario[punt].parola) )
             { inverti(dizionario[punt-1].parola,dizionario[punt].parola);
	       punt--;  
	       if( punt == 0 ) punt = 1; }
	   else punt++;
         }while( punt<=b );
     };


void quicksort( struct parolario dizionario[], int a, int b )
     { char pivot[L];
       char vocabolo[L];
       int i, j;
       if( a<b )
         { strcpy(pivot,dizionario[b-1].parola);
	   //printf("\n\n%s", pivot);
	   i = a;
	   j = b;
	   while( i<= j )
	        { while(( i<=b )&&( strcmp(dizionario[i].parola,pivot)<0 )) i++;
		  while( 0<strcmp(dizionario[j].parola,pivot) ) j--;
		  if( i<j )
		    { inverti(dizionario[i].parola,dizionario[j].parola);
		      i++;
		      j--; };
		};
	   if( i<= b )
	     { quicksort( dizionario, a, j );
	       quicksort( dizionario, i, b ); }
	   else quicksort( dizionario, a, b-1 );
	 };
     };
     
/*void ordina( parole dizionario[] )
    { quicksort();
      insert();
    };
*/
    
/*void quicksort( struct parolario dizionario[], int a, int b )
    { int i, j;
      char* x;
      char vocabolo[L];
      i = a;
      j = b;
      x = & dizionario[N/2].parola;
      do{ while( strcmp(dizionario[i].parola,x)<0 && i<b ) i++;
          while( strcmp(dizionario[j].parola,x)>0 && j<a ) j--;
	  if( i<=j )
	    { inverti(dizionario[i].parola,dizionario[j].parola);
	      i++;
	      j--;
	    };
         }while( i<=j );
      if( a<j ) quicksort( dizionario, a, j );
      if( i<b ) quicksort( dizionario, i, b );
      stampa();
    };
*/
     
int main ()
{ leggi ();
  //insert(dizionario,0,N-1);
  //ordina();
  quicksort(dizionario,0,9);
  stampa( 0, 9 );
system("pause");
};
non mi funziona il quicksort. Vi prego, sto programma lo devo consegnare entro Lunedì alle 12!