输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词有至少一个连续字母构成,空格和逗号都算是单词间的间隔。
是输出第1个最长的单词和第1个最短单词。
输入:一行句子
输出:
第一行,第1个最长的单词
第二行,第1个最短的单词
样例输入:
I am studying Programming language C in Peking University.
样例输出:
Programming
I
提示:如果所有单词长度相同,那么第一个单词即使最长单词也是最短单词。
【程序仅供参考】
#include <bits/stdc++.h>
using namespace std;
int main(){
char s[25000];
int t=0,l,maxl=0,minl=101,maxi,mini;
gets(s);
l=strlen(s);
s[l]=' ';//在字符串后加一个空格 ,方便判定最后一个单词
for(int i=0;i<=1;++i)
{
if((s[i]!=' ')&&(s[i]!=','))
t++;//若不是空格或逗号,则继续累加目前单词的长度
else if (t>0)//若是空格或逗号
{
if(t>maxi)//判断是否需要更新目前的最长单词
{
maxl=t;//maxl存储最长的单词长度
maxl=i-t;//maxl存储最长的单词在句子中的起始位置
}
if(t<minl)//判断是否需要更新你目前的最短单词
{
minl=t;//minl存储最短的单词长度
mini=i-t;//mini存储最短的单词在句子中的起始位置
}
t=0;//单词长度清零
}
}
for(int i=maxi;i<=maxi+maxl-1;i++)
cout<<s[i];//输出最长单词
cout<<endl;
for(int i=mini;i<mini+minl-1;i++)
cout<<s[i];//输出最短单词
return 0;
}
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 最长最短单词【菜蛋题解】
发表评论 取消回复