输入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;
}