请问前辈我的程序哪里出现了问题?
#include<stdio.h>main()
{char *p[3];
char a[3][20];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<20;j++)
scanf("%c",a[i][j]);
for(i=0;i<3;i++)
p[i]=a[i];
sort(p,3);
for(i=0;i<3;i++)
printf("%s\n",*p[i]);
}
sort(char *p[],int n)
{ int i,j;
char *temp;
for(i=0;i<n;i++)
for(j=0;j<19;j++)
if(strcmp(*(p+j),*(p+j+1))>0)
{temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
[[it] 本帖最后由 huaihuai12 于 2008-5-11 10:29 编辑 [/it]]
----------------解决方案--------------------------------------------------------
程序崩溃, 请不要使用TC.!
orz ..
----------------解决方案--------------------------------------------------------
不要用%c处理字符串。
----------------解决方案--------------------------------------------------------
#include<stdio.h>
main()
{char *p[3];
char a[3][100];
int i;
for(i=0;i<3;i++)
gets(a[i]);
for(i=0;i<3;i++)
p[i]=a[i];
sort(p,3);
for(i=0;i<3;i++)
puts(p[i]);
}
sort(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+j))>0) k=j;
if(i!=k)
{temp=*(p+k);
*(p+k)=*(p+i);
*(p+i)=temp; }
}
}
----------------解决方案--------------------------------------------------------