有n个字符串,找到最短的字符串并输出,测试数据有多组,第一行的正整数T表示测试数据的组数。每组的第一行给出 一个正整数n(n≤10),表示该组测试数据中字符串的个数,后跟n行,每行一个一个字符串(不超过100个字符,可能包含空格)对于每组测试数据,输出最短的字符串,每组单独占一行,若有多个字符串都最短,则输出最后一个最短的。c语言程序
时间: 2024-03-14 22:43:32 浏览: 79
C语言程序设计-分别统计字符串中字母、数字、空格和其他字符出现的次数(字符长度小于80);.c
5星 · 资源好评率100%
好的,这里是根据您的要求修改后的 C 语言程序:
```c
#include <stdio.h>
#include <string.h>
int main() {
int T;
scanf("%d", &T);
while (T--) {
int n;
scanf("%d", &n);
char shortest[101] = "";
while (n--) {
char str[101];
scanf("%s", str);
if (strlen(shortest) == 0 || strlen(str) < strlen(shortest)) {
strcpy(shortest, str);
} else if (strlen(str) == strlen(shortest)) {
strcpy(shortest, str);
}
}
printf("%s\n", shortest);
}
return 0;
}
```
主要的修改是在更新最短字符串时增加了一个判断:如果新读入的字符串和当前最短的字符串长度相同,则将新字符串赋值给最短字符串。这样就能保证最终输出的是最后一个最短的字符串了。
其他部分和之前的程序一样,不再赘述。
阅读全文