解题思路:

根据1724题,后缀子串排序


①:定义一个二维字符数组

②:输入字符串个数n

③:输入字符串,当个数满或者输入"stop"时,结束输入

④:调用sqrt排序函数,对字符数组按照长度进行排序
⑤:排序完输出


参考代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define N 101 

int cmp(const void *a, const void *b)
{
    return strlen((char *)a)-strlen((char *)b);
}

int main(void)
{
    int i, j, k, n;
    char s[N][N];

    while (scanf("%d",&n) != EOF)
    {
        k=0;
        getchar(); /*清空缓存区*/
          while(k<n)/*用于输入字符串*/
        {
           gets(s[k++]); /*输入字符串,同时K加上1*/
            if(!strcmp(s[k-1],"stop")) /*若刚输入的字符串为"stop",则字符串个数为k-1,同时结束输入*/
                {
                 k--;
                 break;
                }
        }

        qsort(s, k, sizeof(s[0]), cmp);/*排序*/
        for(i=0; i<k; i++)
            printf("%s\n", s[i]);
    }
    return 0;
}

别忘点赞哦-.-

点赞(8)
 

0.0分

7 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

1年前 回复TA
二维数组的意义在哪里