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

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部