我也在你的代码基础上简单改了一下 不过没有做大量测试
程序代码:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(void) { int n,k,i,j; char str[100][11]; char* p[100]; scanf("%d %d",&n,&k); for(i=0;i<n;i++) { scanf("%s",str[i]); p[i]=str[i]; //这里把字符串的首地址单独放在一起 以便后面排序 } //排序开始 for(i=0;i<n;i++) { for(j=i;j<n;j++) { if((strcmp(p[i],p[j]))>0) { char *tmp; tmp=p[i]; p[i]=p[j]; p[j]=tmp; } } } //排序结束 printf("以下为排序后输出:\n"); for(i=0;i<n;i++) printf("%s\n",p[i]); return 0; }
DO IT YOURSELF !