qq_34457999 2016-05-29 02:51 采纳率: 0%
浏览 1407

C语言问题 我想用指向指针的方法对5个字符串排序并按长短顺序输出。

在我这段程序不变的情况下,请问怎么修改,让程序正常运行。
#include
char **function(char (*)[20]);
int function1(char (*)[20]);
int main()
{
char a[5][20];
char p[1];
int i;
for(i=0;i<5;i++)
{
gets(
(a+i));
fflush(stdin);
}
printf("\n\n");
for(i=0;i<5;i++)
{
puts(*(a+i));
}
p=function(a);
printf("xx");
for(i=0;i<5;i++)
{
puts(
(p+i));
}
}
char **function(char (*a)[20])
{
int i,j,k,q=0,i1,j2,k2;
char *p[5],cha;
for(i=0;i<4;i++)
{
for(j=i+1,k=i;j<5;j++)
{
if(function1(a+k)<function1(a+j))
k=j;
}

    if(k!=i)
    for(i1=0;i1<20;i1++)
    {
        cha=*(*(a+k)+i1);
        *(*(a+k)+i1)=*(*(a+i)+i1);
        *(*(a+i)+i1)=cha;

    }


      *(p+q++)=*(a+i);   
}

   return p;

}
int function1(char (*a)[20])
{
int k=0;
while(*(*a+k++));

    return k;

}

  • 写回答

1条回答

  • 普通网友 2016-10-04 18:32
    关注

    言问题 我想用指向指针的方法对5个字符串排序并按长短顺序输出。
    在我这段程序不变的情况下,请问怎么修改,让程序正常运行。
    #include
    char **function(char (*)[20]);
    int function1(char (*)[20]);
    int main()
    {
    char a[5][20];
    char p[1];
    int i;
    for(i=0;i<5;i++)
    {
    gets((a+i));
    fflush(stdin);
    }
    printf("\n\n");
    for(i=0;i<5;i++)
    {
    puts(*(a+i));

    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于#flink#的问题:关于docker部署flink集成hadoop的yarn,请教个问题flink启动yarn-session.sh连不上hadoop
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题