最长最短单词-求解答!谢谢,我是小白

Vegdie 2020-01-19 10:03:12
输入 1 行句子(不多于 200 个单词,每个单词长度不超过 100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。

试输出第 1 个最长的单词和第 1 个最短单词。
输入格式
一行句子。

输出格式
两行输出:

第 1 行,第一个最长的单词。

第 2 行,第一个最短的单词。

提示
如果所有单词长度相同,那么第一个单词既是最长单词也是最短单词。
样例输入
abcdedcba
样例输出
yes


详细见链接:https://nanti.jisuanke.com/t/T1122
...全文
727 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
流ღ᭄ꦿ年࿐ 2020-01-27
  • 打赏
  • 举报
回复
#include<stdio.h> #include<string.h> #define n 500 int main() { char sentence[n]; int length[200],position[200[2],L,i,j=0,max,min,longest,shortest; int MAX(int l[],int i); int MIN(int l[],int i); printf("请输入英文句子:"); gets(sentence); L=strlen(sentence); for(i=0;i<200;i++) length[i]=0; //printf("%d",L); for(i=0;i<L;i++) { if(sentence[i]>64&&sentence[i]<91sentence[i]>96&&sentence[i]<123) { if(i==0)position[j][1]=i; if(sentence[i-1]==' '||sentence[i-1]==',')position[j][1]=i; if(sentence[i+1]==' '||sentence[i+1]==',')position[j[2]=i; if(i==L-1)position[j][2]=i; ++length[j]; } if((sentence[i]==' '||sentence[i]==',')&&sentence[i+1]!=' '&&sentence[i+1]!=',')++j; } max=MAX(length,j); min=MIN(length,j); for(i=0;i<=j;i++) { if(length[i]==max){longest=i;break;} } for(i=0;i<=j;i++) { if(length[i]==min){shortest=i;break;} } printf("最长的单词:"); for(i=position[longest][1];i<=position[longest][2];i++) printf("%c",sentence[i]); printf("\n最短的单词:"); for(i=position[shortest][1];i<=position[shortest][2];i++) printf("%c",sentence[i]); printf("\n"); return 0; } int MAX(int l[],int i) { int j,m; m=l[0]; for(j=1;j<=i;j++) { if(m<l[j])m=l[j]; } return m;} int MIN(int l[],int i) { int j,m; m=l[0]; for(j=1;j<=i;j++) { if(m>l[j])m=l[j]; } return m;}
流ღ᭄ꦿ年࿐ 2020-01-27
  • 打赏
  • 举报
回复
#include<stdio.h>#include<string.h>#define n 500int main(){ char sentence[n]; int length[200],position[200][2],L,i,j=0,max,min,longest,shortest; int MAX(int l[],int i); int MIN(int l[],int i); printf("请输入英文句子:"); gets(sentence); L=strlen(sentence); for(i=0;i<200;i++) length[i]=0; //printf("%d",L); for(i=0;i<L;i++) { if(sentence[i]>64&&sentence[i]<91||sentence[i]>96&&sentence[i]<123) { if(i==0)position[j][1]=i; if(sentence[i-1]==' '||sentence[i-1]==',')position[j][1]=i; if(sentence[i+1]==' '||sentence[i+1]==',')position[j][2]=i; if(i==L-1)position[j][2]=i; ++length[j]; } if((sentence[i]==' '||sentence[i]==',')&&sentence[i+1]!=' '&&sentence[i+1]!=',')++j; } max=MAX(length,j); min=MIN(length,j); for(i=0;i<=j;i++) { if(length[i]==max){longest=i;break;} } for(i=0;i<=j;i++) { if(length[i]==min){shortest=i;break;} } printf("最长的单词:"); for(i=position[longest][1];i<=position[longest][2];i++) printf("%c",sentence[i]); printf("\n最短的单词:"); for(i=position[shortest][1];i<=position[shortest][2];i++) printf("%c",sentence[i]); printf("\n"); return 0;}int MAX(int l[],int i){ int j,m; m=l[0]; for(j=1;j<=i;j++) { if(m<l[j])m=l[j]; } return m;}int MIN(int l[],int i){ int j,m; m=l[0]; for(j=1;j<=i;j++) { if(m>l[j])m=l[j]; } return m;}
极冰海涯 2020-01-27
  • 打赏
  • 举报
回复 1
先把所有的逗号转换成空格,再把所有的单词输入一个字符串数组,遍历同时统计最长最短单词
拂湖之风 2020-01-26
  • 打赏
  • 举报
回复
输入字符串用while循环
拂湖之风 2020-01-26
  • 打赏
  • 举报
回复
先输入字符串,再用比较字符串的长度(就是单词都位数)
寻开心 2020-01-20
  • 打赏
  • 举报
回复
基础练习题,自己写代码,错了贴文上来提问
一星伴月 2020-01-20
  • 打赏
  • 举报
回复
是需要源代码,还是思路呢?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧