解题思路:我的思路是先将字符串存入到一个二维数组中,存入之后对这个字符串的长度进行遍历,如果有比前一个短的字符串,记录下标位置。
最后以字符串形式输出,看源代码就清晰了。
源代码:
int main()
{
int n = 0;
scanf_s(“%d”, &n);//输入字符串的个数
char arr[1001][1001] = { 0 };
int i = 0;
int min = 99999;
int k = 0;
getchar();//这里要把输入n之后的空格给吸收了,不然gets会将它看做一次输入
for (i = 0; i < n; i++)//i来控制输入几行字符串
{
gets_s(arr[i]);//输入字符串
int j = 0;//用arr[i][j]来遍历输入的字符串的长度
int count = 0;//count记录字符串的长度
while (arr[i][j])
{
count++;
j++;
}
if (count < min)//如果有比count小的字符串,将count赋值给min,并且记录下标i
{
min = count;
k = i;
}
}
printf("%s", arr[k]);//此时k中存放的就是最短的字符串
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)