题目描述 有n个字符串,找到最短的字符串并输出。 输入 测试数据有多组,第一行的正整数T表示测试数据的组数。每组的第一行给出一个正整数n(n≤10),表示该组测试数据中字符串的个数,后跟n行,每行一个一个字符串(不超过100个字符,可能包含空格)。 输出 对于每组测试数据,输出最短的字符串,每组单独占一行。若有多个字符串都最短,则输出最后一个最短的。发c语言代码
时间: 2024-03-03 18:50:16 浏览: 193
c++-c++编程基础之leetcode题解第8题字符串转换整数.zip
好的,以下是完整的 C 语言代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_N 10
#define MAX_LEN 100
int main() {
int t, n, i, len, shortest_index, last_shortest_index;
char s[MAX_LEN + 1], shortest[MAX_LEN + 1];
scanf("%d", &t);
while (t--) {
scanf("%d", &n);
scanf("%s", shortest);
shortest_index = last_shortest_index = 0;
for (i = 1; i < n; i++) {
scanf("%s", s);
len = strlen(s);
if (len < strlen(shortest)) {
strcpy(shortest, s);
shortest_index = i;
} else if (len == strlen(shortest)) {
last_shortest_index = i;
}
}
printf("%s\n", last_shortest_index == 0 ? shortest : s);
}
return 0;
}
```
代码思路和前面 Python 版本的实现基本相同,使用 `scanf()` 和 `printf()` 读写输入输出。字符串的读入使用 `%s` 格式,然后使用 `strlen()` 函数获取长度。注意在读入第一个字符串时,要先读入到 `shortest` 数组中,然后将其作为当前最短字符串进行处理。
输出时,如果只有一个最短字符串,直接输出 `shortest` 字符串,否则输出最后一个最短字符串对应的字符串 `s` 即可。
阅读全文