C语言我这个程序到底错在哪里???
#include <stdio.h>
main()
{
char a[]="dddd",b[]="caad",c[]="cbbc",d[]="aaaa";
char *p[4]={&a[0],&b[0],&c[0],&d[0]},*t;
int k=0,on;
for(int i=0;i<3;i++)
for(int j=i;j<4;j++)
{
while(*p[i]==*p[j])
{
on=1;
p[i]++,p[j]++,k++;
if(*p[i]!=*p[j])
break;
}
if(*p[i]>*p[j])
{
t=p[i];
p[i]=p[j];
p[j]=t;
}
while(on)
{
p[i]--,p[j]--,k--;
if(k=0)
break;
}
}
for(i=0;i<4;i++)
puts(p[i]);
我知道错误就在 while(*p[i]==*p[j])
{
on=1;
p[i]++,p[j]++,k++;
if(*p[i]!=*p[j])
break;
}
这里,但不知道为什么
补充:这是个字符串排序的程序,我没用strcmp
追问:能详细点么??