[求助]函数调用指针数组对字符串排序问题(无法排序)
#include <stdio.h>#include<string.h>
#define M 3
#define N 30
int main(){
void input(char* p[],int n);/*声明输入函数*/
void change(char* p[],int n);/*声明排序函数*/
void output(char* p[],int n);/*声明输出函数*/
char a[M][N];/*用来储存字符串*/
int i;
char* str[M];
for(i=0;i<M;i++)
str[i]=a[i];
input(str,M);
change(str,M);
output(str,M);
return 0;
}
void input(char* p[],int n){
int i;
printf("Please input %d character strings!\n",n);
for(i=0;i<n;i++)
gets(p[i]);
}
void change(char* p[],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(p[k],p[i])>0)
k=j;
}
if(k!=i){
temp=p[i];
p[i]=p[k];
p[k]=temp;
}
}
}/*用选择排序法排序*/
void output(char* p[],int n){
int i;
for(i=0;i<n;i++)
printf("%s\n",p[i]);
}
运行时无法输出正确的顺序,我想了很长时间就是不知道问题出在哪,估计在指针中。请高手指点一下。谢谢!
[此贴子已经被作者于2006-5-22 10:57:51编辑过]