#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
 int n,i,j;
 char **str;
 char s[100];
 printf("请输入n:");
 scanf("%d",&n);
 getchar();
 str=(char**)malloc(sizeof(char*)*n);
 for(i=0;i<n;i++)
 {
 str[i]=(char*)malloc(sizeof(char)*100);
 printf("请输入第%d个字符串\n",i+1);
 gets(str[i]);
 }
 puts("排序后的字符串为:");
 for(i=0;i<n;i++)
 {
 for(j=i;j<n-1;j++)
 {
 if(strcmp(str[j+1],str[j])<0)
 {
 strcpy(s,str[j+1]);
 strcpy(str[j+1],str[j]);
 strcpy(str[j],s);
 }
 }
 }
 for(i=0;i<n;i++)
 {
 puts(str[i]);
 }
 for(i=0;i<n;i++)
 {
 free(str[i]);
 str[i]=NULL;
 }
 free(str);
 str=NULL;
 return 0;
} 
 
楼主看看满足条件不。