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!