解题思路:
根据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; }
别忘点赞哦-.-
0.0分
8 人评分