当前位置: 代码迷 >> C语言 >> 请问前辈我的程序哪里出现了问题?
  详细解决方案

请问前辈我的程序哪里出现了问题?

热度:102   发布时间:2008-05-11 10:26:12.0
请问前辈我的程序哪里出现了问题?
#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; }


}


}


----------------解决方案--------------------------------------------------------
  相关解决方案