|

楼主 |
发表于 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;
- }
复制代码 |
|