注册 登录
编程论坛 新人交流区

[求助]这个程序有什么错误呢

feitianx1 发布于 2007-10-21 17:14, 223 次点击
这个程序是输入四个字符串,然后进行排序,最后输出,怎么结果不对呢,有什么错误啊,请高手指点
#include <string.h>
#include <stdlib.h>
void sort(char (*p)[4]);
int main()
{
int i;
char p[4][4];
for(i=0;i<4;i++)
gets(p[i]) ;
sort(p);
for(i=0;i<4;i++)
printf("%s\n",p[i]);
return 0;
}
void sort(char (*p)[4])
{
int i,j,k;
char q[4];
for(i=0;i<4;i++)
{
k=i+1;
for(j=0;j<4;j++)
{
if(strcmp(*p+j,*p+k)>0)
k=j;
}
strcpy(q,*p+k);strcpy(*p+k,*p+i);strcpy(*p+i,q);
}
}
2 回复
#2
yanhualiang2007-10-21 17:53

#include <string.h>
#include <stdlib.h>
void sort(char [][4]);
int main()
{
int i;
char p[4][4];
for(i=0;i<4;i++)
gets(p[i]) ;
sort(p);
for(i=0;i<4;i++)
printf("%s\n",p[i]);
return 0;
}
void sort(char p[][4])
{
int i,j;
char q[4];
for(i=0;i<3;i++)
{
for(j=i+1;j<4;j++)
{
if(strcmp(p[i],p[j])>0)
{
strcpy(q,p[i]);
strcpy(p[i],p[j]);
strcpy(p[j],q);
}
}
}
}

#3
feitianx12007-10-22 02:24

thank you!

1