• 字符串的一道题,我的答案超时了,希望大神在原有基础上帮我改正
  • 其他开发语言其它
    5.00元

描述
输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。
试输出第1个最长的单词和第1个最短单词。 
输入
一行句子。
输出
两行输出:
第1行,第一个最长的单词。
第2行,第一个最短的单词。
样例输入
I am studying Programming language C in Peking University
样例输出
Programming
I
提示
如果所有单词长度相同,那么第一个单词既是最长单词也是最短单词。

#include<stdio.h>
#include<string.h>
int main()
{
   char ch[222222];
   int i,max=0,min=120,a,b,c,d,t=0;
   gets(ch);
   int len=strlen(ch);
   for(i=0;i<len;i++)
   {

       if(ch[i]==' ')
       {

           int n=i-t+1;
           if(n>max) {max=n;a=t;b=i-1;}
           if(n<min) {min=n;c=t,d=i-1;}
           t=i+1;
       }
   }

   for(i=a;i<=b;i++)
       printf("%c",ch[i]);
       printf("\n");
   for(i=c;i<=d;i++)
       printf("%c",ch[i]);
   return 0;
}

  • Willson1991    2019-12-19 11:29:56
  • 阅读 1015    收藏 0    回答 1
  • 邀请
  • 收藏
  • 分享
发送
登录 后发表评论
  • 51testing软件测试圈微信