题目描述
输入n和n个字符串,输出其中最短的字符串。若长度相同则输出出现较早的那一个。
输入
第一行是一个整数n,后面跟着n行,每行包括一个由字母和数字和空格组成的字符串,长度不超过1000。
输出
长度最短的字符串,若长度相同则输出出现较早的那一个。
样例输入 Copy
5
How are you!
Happy
Good!
Hello world!
Thinks
样例输出 Copy
Happy
#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
char a[1000],min[1000];//首先定义两个字符数组a用于接收输入字符串,min用于存入最小长度字符串
int i,n;
scanf("%d",&n);
getchar();//必须要吸收回车,因为不吸收回车,下面的gets函数会接收回车
gets(a);
strcpy(min,a);//让第一个字符串设定为最小字符串
for(i=1;i<n;i++)//输入后四字符串
{
gets(a);
if(strlen(a)<strlen(min))//如果后面的字符串比现在的字符串长度小则替换 不能加等号,因为如果前面的最小字串长度 和后面也有同样的最小字符串长度,则min会变成后面的字符串,而题目要求的是输出第一个最小字符串
{
strcpy(min,a);
}
}
puts(min);
}