输入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;
}
}
}
注意区别
----------------解决方案--------------------------------------------------------
终于明白了,,,太感激了。。楼上
----------------解决方案--------------------------------------------------------