77kki 2021-05-24 11:53 采纳率: 60%
浏览 58
已采纳

C语言 指针 将字符串按长度排列

根据在网上找的代码自己改了一个 但是不知道哪里错了

求问(*p)[N]和*p[N]在写的时候有什么区别

展开全部

  • 写回答

3条回答 默认 最新

  • 正在学C++ 2021-05-26 08:39
    关注
    #include<stdio.h>
    #include<string.h>
    #define M 5
    #define N 20
    void StrSort(char (*p)[N])
    {
        int i,j,k,x[M];		char t[N];
        for(i=0;  i<M;  i++ )
            x[i]=strlen(p[i]);
    
        for(i=0;  i<M;  i++  )      /////////////i<M
        {	k=i;
            for(j=i+1;  j<M;  j++ )
                if(x[j]<x[i])	k=j;
            if(k!=i)
            {	strcpy(t,p[i]);
                strcpy(p[i],p[k]);
                strcpy(p[k],t);
                x[k]=x[i];
            }
        }
    }
    int main()
    {
        char p[M][N];
        int i;
        for(i=0;i<M;i++)
            scanf("%s",p[i]);   /////////////////不要加\n
        StrSort(p);
        for(i=0;i<M;i++)
            printf("%s\n",p[i]);
        return 0;
    }
    /*
    12345
    1234
    123
    12
    1
     */
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部