主题:指针法编程
8. 用指针法编程,从键盘上输入多个字符串(每个串不超过15个字符且没有空格),将这些字符串按从小到大的次序排列出来。
实验步骤与要求:
(1) 设计二维数组存放多个字符串;
(2) 设计指针数组用于访问每个字符串;
(3) 在主函数中输入多个字符串;
(4) 对多个字符串进行排序处理;
(5) 输出排序结果。
我的自编程序如下:
void main()
{
int i;
char *s[N][15];
void print(char *str[N][15],int n);
void sort(char *str[N][15],int n);
for(i=0;i<N;i++)
{
printf("请输入%d 串字符:",i+1);
scanf("%s",&s[i]);
}
sort(s,N);
print(s,N); //将二维数组的首地址传给print
}
void sort(char *str[N][15],int n)
{
int i,j,k;
char *temp;
for(i=0;i<N-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(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[N][15],int n)
{
int i;
for(i=0;i<n;i++)
printf("%s\n",str[i]);
}
请问不能够在sort函数中将char *str[N][15]变成str[]来比较str[1][]和str[2][]的大小呢?
应该怎样修改才能使输出的字符串按字符串的大小从大到小输出呢?(必须要用指针编程实现,要求如题,请高手帮忙解决下难题!)
实验步骤与要求:
(1) 设计二维数组存放多个字符串;
(2) 设计指针数组用于访问每个字符串;
(3) 在主函数中输入多个字符串;
(4) 对多个字符串进行排序处理;
(5) 输出排序结果。
我的自编程序如下:
void main()
{
int i;
char *s[N][15];
void print(char *str[N][15],int n);
void sort(char *str[N][15],int n);
for(i=0;i<N;i++)
{
printf("请输入%d 串字符:",i+1);
scanf("%s",&s[i]);
}
sort(s,N);
print(s,N); //将二维数组的首地址传给print
}
void sort(char *str[N][15],int n)
{
int i,j,k;
char *temp;
for(i=0;i<N-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(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[N][15],int n)
{
int i;
for(i=0;i<n;i++)
printf("%s\n",str[i]);
}
请问不能够在sort函数中将char *str[N][15]变成str[]来比较str[1][]和str[2][]的大小呢?
应该怎样修改才能使输出的字符串按字符串的大小从大到小输出呢?(必须要用指针编程实现,要求如题,请高手帮忙解决下难题!)