题解 | #最长&最短文本#
最长&最短文本
https://www.nowcoder.com/practice/3331d16fe07d4358858178ff5fa73e0d
#include <stdio.h> #include <string.h> int main() { char s[1000][1001]; int k = 0; int minlen = 1001, maxlen = 0; // 读取输入,直到文件结束 while (fgets(s[k], sizeof(s[0]), stdin)) { if (feof(stdin)) // 检查是否到达文件结束 break; s[k][strcspn(s[k], "\n")] = '\0'; // 去掉fgets读取的换行符 int len = strlen(s[k]); minlen = len < minlen ? len : minlen; maxlen = len > maxlen ? len : maxlen; k++; } // 输出最短字符串 for (int i = 0; i < k; i++) { if (strlen(s[i]) == minlen) printf("%s\n", s[i]); } // 输出最长字符串 for (int i = 0; i < k; i++) { if (strlen(s[i]) == maxlen) printf("%s\n", s[i]); } return 0; }