利用二维数组和二级指针作参数对二维数组进行排序
#include<string.h>#include<stdio.h>
#define N 3
#define M 10
void rank(char **p);
main()
{
int i;
char s[N][M];
printf("请输入字符串\n");
for(i=0;i<N;i++)
{
gets(s[i]); //s[i]是每一行的头地址
}
printf("输入的字符串是\n");
for(i=0;i<N;i++)
{
puts(s[i]);
}
rank(s);
for(i=0;i<N;i++)
{
puts(s[i]);
}
}
void rank(char **p)
{
int i,j;
char *s;
for(i=0;i<N-1;i++)
{
for(j=0;j<N-i;j++)
if(strcmp(*(p+i),*(p+j))>0)//调试后发现这里错了
{
s=*(p+j);
*(p+j)=*(p+i);
*(p+i)=s;
}
}
}
//这个程序有问题。