永发信息网

编制函数sortstr,帮我看看这个问题该怎么改(代码如下)

答案:2  悬赏:0  手机版
解决时间 2021-02-06 01:26
  • 提问者网友:饥饿走向夜
  • 2021-02-05 08:12
编制函数sortstr,帮我看看这个问题该怎么改(代码如下)
最佳答案
  • 五星知识达人网友:你可爱的野爹
  • 2021-02-05 08:34
改法1
#include
#include
#include
void sortstr(char p[][20],int n); //数组变量(其实传递的是个数组的引用)
int main()
{
char a[10][20];
//char *p;
int n,i;
scanf("%d",&n);
//p=a[0];
sortstr(a,n);
for(i=0;i printf("%s",a[i]);
return 0;
}
void sortstr(char p[][20],int n)
{
char t[20];
int i,j;
for (i=0;i {
for (j=0;j {
if(strcmp(p[i],p[j])>0)
{
strcpy(t,p[i]);
strcpy(p[i],p[j]);
strcpy(p[j],t);
}
}
}
}

改法2: 纯指针方式

#include
#include
#include
void sortstr(char **p,int n);
int main()
{
char a[10][20];
char *p[10];
int n,i;
for(i=0;i<10;i++) p[i] = a[i];//给指针赋值
scanf("%d",&n);
//p=a[0];
sortstr(p,n);
for(i=0;i printf("%s",a[i]);
return 0;
}
void sortstr(char **p,int n)
{
char t[20];
int i,j;
for (i=0;i {
for (j=0;j {
if(strcmp(p[i],p[j])>0)
{
strcpy(t,p[i]);
strcpy(p[i],p[j]);
strcpy(p[j],t);
}
}
}
}
全部回答
  • 1楼网友:怀裏藏嬌
  • 2021-02-05 10:04
排序算法可改为由一个函数这种题,给个悬赏分就好了,楼主。给分的话,,呵呵,很快回答你。追问void sortstr(char *p,int n)
{
char *t;
int i,j;
for (i=0;i {
for (j=i+1;j {
if(strcmp(*(p+i),*(p+j))>0)
{
t=*(p+i);
*p=*(p+j);
*(p+j)=t;
}
}
}
}
排序我会 我不会的是指针的用法和传递 想请教的是上面指针的用法错哪了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯