当前位置: 代码迷 >> C语言 >> 看看我的程序。。运行达不到结果
  详细解决方案

看看我的程序。。运行达不到结果

热度:84   发布时间:2006-03-07 02:39:00.0
看看我的程序。。运行达不到结果

输入3个字符串,按由小到大的顺序排列。。

搜索更多相关的解决方案: 结果  运行  

----------------解决方案--------------------------------------------------------

#include<string.h>

main()
{ char *a[3]; int i;
void sort(char *,int);
for(i=0;i<3;i++)
scanf("%s",a[i]);

sort (a,3);
for(i=0;i<2;i++)
printf("%s",*(a+i));}


void sort(char *p,int n)
{ char *temp; int i,j,k;
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(k!=j)
{temp=*(p+k);
*(p+k)=*(p+j);
*(p+j)=temp;}
}
}


----------------解决方案--------------------------------------------------------
为什么运行什么说null pointer assis ment
不明白
哪位帮我改改
----------------解决方案--------------------------------------------------------

没仔细看按提示NULL指针
交换地址值??晕,值传递没法交换
楼下的反了

[此贴子已经被作者于2006-3-7 3:53:40编辑过]


----------------解决方案--------------------------------------------------------

#include<string.h>

void main()
{
char *a[3];
int i;

void sort(char **,int);

for(i=0;i<3;i++)
scanf("%s",a[i]);

sort (a,3);
for(i=0;i<3;i++)
printf("%s\n",*(a+i));
getch();
}


void sort(char **p,int n)
{
char *temp;
int i,j;

for(i=0;i<(n-1);i++)
{
for(j=i+1;j<n;j++)
if(strcmp(*(p+i),*(p+j))>0)
{
temp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=temp;
}
}
}
注意区别


----------------解决方案--------------------------------------------------------

终于明白了,,,太感激了。。楼上


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