【正确答案】void jsSort()
{
int i, j, k, length, half;
char temp;
for(i=0; i<20; i++){
length=strlen(xx[i]);
half=length/2;
for(j=0; j<half-1; j++)
for(k=j+1; k<half; k++)
if(xx[i][j]<xx[i][k]){
temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
If(length%2!=0) half=half+1;
for(j=half; j<length-1; j++)
for(k=j+1; k<length; k++)
if(xx[i][j]>xx[i][k]){
temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
}
【答案解析】[解析] 此题的思路是先求出字符串数组××中每一行的长度,然后先对前半部分进行降序排列,再对后半部分进行升序排列。注意,题目要求当字符串长度为奇数时,中间的字不参加排序,所以在对后半部分进行排序时要加一个对length的奇偶判断。当length为偶数时要从length/2开始排序,当length为奇数时要从length/2+1时开始排序。这里是用冒泡排序法进行排序的,用其他的排序方法亦可。