単語を辞書順(逆)に出力したいんですが、一部の単語は入れ替えを行われていないようです。何回も繰り返すと正しい結果が出ます。
誰か教えていただけませんか。よろしくお願いします。
void quick_sort(char a[][WORD_LENGTH_MAX], int left, int right) {
char temp_char[1][WORD_LENGTH_MAX];
int l = left;
int r = right;
int s;
s = (left + right) / 2;
while(1){
while(stricmp(a[l], a[s]) > 0) l++;
while(stricmp(a[s], a[r]) > 0) r--;
if(l >= r) break;
strcpy(temp_char[0], a[l]);
strcpy(a[l], a[r]);
strcpy(a[r], temp_char[0]);
l++;
r--;
}
if(left < l - 1)
quick_sort(a, left, l - 1);
if(right > r + 1)
quick_sort(a, r + 1, right);
}