|  | 
 
 
 楼主|
发表于 2016-8-1 10:16:03
|
显示全部楼层 
| 搞了半天算是弄明白了,正确的代码如下: 
 
 复制代码
/*
10.20  用指向指针的指针的方法对5个字符串排序并输出。
*/
#include <stdio.h>
#include <string.h>
int main()
{
        char s[][20]={"China","England","Japan","India","America"};
        char t[20];
        char *dz[5];
        char **ps;
        int i,j,k;
        for(i=0;i<5;i++)
                dz[i]=s[i];
        ps=dz;
        
        printf("原顺序:\n");
        for(i=0;i<5;i++)
                printf("%-8s",*(ps+i));
        printf("\n");
        
        for(i=0;i<4;i++)
        {
                k=i;
                for(j=i+1;j<5;j++)
                        if(strcmp(*(ps+j),*(ps+k))<0) k=j;
                if(k!=i)
                {
                        strcpy(t,*(ps+i));
                        strcpy(*(ps+i),*(ps+k));
                        strcpy(*(ps+k),t);
                }
        }
        
        printf("排序后:\n");
        for(i=0;i<5;i++)
                printf("%-8s",*(ps+i));
        printf("\n");
        return 0;
}
 | 
 |