输入 11 行句子(不多于 200200 个单词,每个单词长度不超过 100100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。
试输出第 11 个最长的单词和第 11 个最短单词。
输入格式
一行句子。
输出格式
两行输出:
第 11 行,第一个最长的单词。
第 22 行,第一个最短的单词。
提示
如果所有单词长度相同,那么第一个单词既是最长单词也是最短单词。
#include<stdio.h>
#include<string.h>
char a[40000];
int b[300],c[300],d[300];
int main(){
gets(a);
int i,j=0,k=0,len;
len=strlen(a);
for(i=0;i<len;i++){
while(a[i]!=' '&&a[i]!='\0'){
j++;
i++;
}
b[k]=j;
c[k]=i;
d[k++]=i-j;
j=0;
}
int min=0,max=0;
for(i=0;i<k;i++){
if(b[i]>b[max]){
max=i;
}
else if(b[i]<b[min]){
min=i;
}
}
for(i=d[max];i<c[max];i++){
printf("%c",a[i]);
}
printf("\n");
for(i=d[min];i<c[min];i++){
printf("%c",a[i]);
}
}