最长最短单词(信息学奥赛一本通-T1143)
生活随笔
收集整理的這篇文章主要介紹了
最长最短单词(信息学奥赛一本通-T1143)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目描述】
輸入 1 行句子(不多于200個單詞,每個單詞長度不超過100),只包含字母、空格和逗號。單詞由至少一個連續的字母構成,空格和逗號都是單詞間的間隔。?
試輸出第 1 個最長的單詞和第 1 個最短單詞。
【輸入】
一行句子。
【輸出】
第 1 行,第一個最長的單詞。
第 2 行,第一個最短的單詞。
【輸入樣例】
I am studying Programming language C in Peking University
【輸出樣例】
Programming
I
【源程序】
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int main() {char s[10000];int len;int sum=0,max_len=0,min_len=9999;int max_position,min_position;int i;gets(s);//獲取字符串slen=strlen(s);//求字符串長度s[len]=' ';//在字符串后加以空格,方便判定for(i=0; i<len; i++){if(s[i]!=' '&&s[i]!=',') sum++;//若不是空格或逗號,累加單詞長度else if(sum>0)//若是空格或逗號{if(sum>max_len){max_len=sum;//存儲目前最長的單詞長度max_position=i-sum;//記錄最長單詞的位置}if(sum<min_len){min_len=sum;//存儲目前最短的單詞長度min_position=i-sum;//記錄最短單詞的位置}sum=0;//計數器歸零}}for(i=max_position; i<=max_position+max_len-1; i++) //輸出最長單詞cout<<s[i];cout<<endl;for(i=min_position; i<=min_position+min_len-1; i++) //輸出最短單詞cout<<s[i];return 0; }?
總結
以上是生活随笔為你收集整理的最长最短单词(信息学奥赛一本通-T1143)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通C++语言——1081:
- 下一篇: 分段函数(信息学奥赛一本通-T1051)