用指向指针的方法对5个字符串排序并输出。

用指向指针的方法对5个字符串排序并输出。请各位大神帮我看看这个程序的错误,非常感谢。
//习题六 3.1
#include
#include
void main()
{
char p[5],*q,str[5],*t;
int i,j;
printf("请输入五个字符串:");
gets(str);
for(i=0;i p[i]=&str[i];
for(i=0;i { for(j=i+1;j { if(strcmp(p[i],p[j])>0)
{t=p[i];p[i]=p[j];p[j]=t;}
}
}
for(i=0;i<5;i++)
{ q=p+i;
puts(*q);
}
}

2个回答

p[i]=&str[i];处,&是取址符,此处是取str[i]的地址,然后赋值给p[i]

char p[5],
得用char *p[5]才行

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问