备战考研算法笔记(七)最长&最短文本

题目描述:

    输入多行字符串,请按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出。

输入:

输入包括多行字符串,字符串的长度len,(1<=len<=1000)。

输出:

按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出。

样例输入:
hello
she
sorry
he
样例输出:
he
hello
sorry



不想写了 直接看代码,发现自己还是只会c语言
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<malloc.h>
 4 
 5 typedef struct string
 6 {
 7         char s[1001];
 8         int len;
 9 };
10 
11 int main()
12 {
13         string *a;
14         int i=0,j;
15         a=(string *)malloc(1000*sizeof(string));
16         int maxlen,minlen;
17         while(scanf("%s",a[i].s)!=EOF)
18         {
19                 a[i].len=strlen(a[i].s);
20                 i++;
21         }
22         maxlen=a[0].len;minlen=a[0].len;
23         for(j=1;j<i;j++)
24         {
25                 if(a[j].len>maxlen) maxlen=a[j].len;
26                 if(a[j].len<minlen) minlen=a[j].len;
27         }
28         for(j=0;j<i;j++)
29                 if(a[j].len==minlen) printf("%s
",a[j].s);
30         for(j=0;j<i;j++)
31                 if(a[j].len==maxlen) printf("%s
",a[j].s);
32         free(a);
33         return 0;
34 }
原文地址:https://www.cnblogs.com/ligen/p/3268381.html