ch_zhzh_ 2023-05-07 07:11 采纳率: 100%
浏览 55
已结题

1143:最长最短的单词

#信息学奥赛一本通(1143)
#只有20分
首先先输入一个字符串,然后将它分割成一个个单词

int i=0,z=0,max=0,h,small=2000,d;
    while((a[i++]=getchar())!='\n');
    for(int o=0;o<500;o++)
    {
        if(a[o]==' '||a[o]==','||a[o]=='\n')
        {
            if(z>max)  max=z,h=o;
            if(z<small&&(a[o-1]!=' '&&a[o-1]!=','))  small=z,d=o;
            z=0;
        }
        else
        {
            z++;
        }
    }

判断最长最短的单词,最后输出

for(int y=h-max;y<h;y++)
    {
        cout<<a[y];
    }
    cout<<endl;
    for(int y=d-small;y<d;y++)
    {
        cout<<a[y];
    }

有什么问题。

  • 写回答

2条回答 默认 最新

  • 创意程序员 2023-05-07 07:37
    关注

    char a[] 初始化没?
    第一个for循环,不要循环到 a 结束,只要循环到 i,后面都不是输入内容:
    for(int o=0;o<i;o++)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月28日
  • 已采纳回答 5月20日
  • 修改了问题 5月7日
  • 修改了问题 5月7日
  • 展开全部