#include
#include
int main()
{ void sort(char*str[],int n);
void print(char*str[],int n);
char* str[1000];
int i, m=3;
printf("请输入三个字符串:");
for(i=0;iscanf("%s",str[i]);
}
sort(str,m);
print(str,m);
return 0;
}
void sort(char*str[],int n)
{ int i,k,j;
char*temp;
for(i=0;i-1;i++)
{ k=i;
for(j=i+1;jif(strcmp(str[k],str[j])>0) k=j;
if(k!=i)
{ temp=str[i];
str[i]=str[k];
str[k]=temp;
}
}
void print(char*str[],int n)
{ int i;
for(i=0;iprintf("%s\n",str[i]);}
}
char *str[1000] 定义了1000个指针,而这些指针并没有被分配内存空间
// char *str[1000];
int i, m = 3;
char **str = (char **)malloc(sizeof(char *) * m);
for (i = 0; i < m; i++)
str[i] = (char *)malloc(sizeof(char) * 100);
既然是3个字符串,你应该定义a[3][1000]才对,定义成指针数组是要干什么