鱼C论坛

 找回密码
 立即注册
查看: 809|回复: 4

[已解决]小白求助,求一句英语中的 最长单词,求解下面程序问题出错的地方,

[复制链接]
发表于 2021-11-28 20:28:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
main()
{
        int i,j,d[4000][2],k,m;
        char s[2000],ch;
        for(i=1;((ch=getchar())!='\n');i++)
        {
                s[i]=ch;
        }
        for(k=1; ;k++)
        {
                for(j=i; ; i++)
                {
                        if(ch==' ')
                        d[k][1]=j;
                    d[k][0]=j-i;
                }
        }
        for(m=d[0][0],i=1;i<=k;i++)
        {
                if(d[k][0]>m)
                m=d[k][0];
        }
        for(i=0;i<=d[k][0];i++)
        {
                putchar(s[d[k][1]+i]);
        }
}
最佳答案
2021-11-28 21:09:59
本帖最后由 jackz007 于 2021-11-28 21:59 编辑

        真就那么简单???
        你的代码错的实在离谱万里!!!
int main(void)
{
        int i , j , d[4000][2] , k , m                           ;
        char s[2000] , ch                                        ;
        for(m = 0 ; ((ch = getchar())!='\n') ; m ++) s[m] = ch   ;
        for(i = k = 0 ; i < m ; i = j , k ++)
        {
                for(; i < m ; i ++)
                {
                        if(s[i] != ' ') break                    ;
                }
                for(j = i ; j < m ; j ++)
                {
                        if(s[j] == ' ') break                    ;
                }
                d[k][1] = i                                      ;
                d[k][0] = j - i                                  ;
        }
        for(m = d[0][0] , i = 1 ; i < k ; i ++)
        {
                if(d[i][0] > m) m = d[i][0]                      ;
        }
        for(i = 0 ; i < k ; i ++)
        {
                if(d[i][0] == m)
                {
                        for(j = 0 ; j < d[i][0] ; j ++)
                        {
                                putchar(s[d[i][1] + j])          ;
                        }
                }
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-28 21:09:59 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2021-11-28 21:59 编辑

        真就那么简单???
        你的代码错的实在离谱万里!!!
int main(void)
{
        int i , j , d[4000][2] , k , m                           ;
        char s[2000] , ch                                        ;
        for(m = 0 ; ((ch = getchar())!='\n') ; m ++) s[m] = ch   ;
        for(i = k = 0 ; i < m ; i = j , k ++)
        {
                for(; i < m ; i ++)
                {
                        if(s[i] != ' ') break                    ;
                }
                for(j = i ; j < m ; j ++)
                {
                        if(s[j] == ' ') break                    ;
                }
                d[k][1] = i                                      ;
                d[k][0] = j - i                                  ;
        }
        for(m = d[0][0] , i = 1 ; i < k ; i ++)
        {
                if(d[i][0] > m) m = d[i][0]                      ;
        }
        for(i = 0 ; i < k ; i ++)
        {
                if(d[i][0] == m)
                {
                        for(j = 0 ; j < d[i][0] ; j ++)
                        {
                                putchar(s[d[i][1] + j])          ;
                        }
                }
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-28 21:54:41 | 显示全部楼层
jackz007 发表于 2021-11-28 21:09
真就那么简单???
        你的代码错的实在离谱万里!!!

我这不是想试试想简单点,把输入情况想成平时输出英文习惯,试试看。结果还是难
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-28 22:00:22 | 显示全部楼层
jackz007 发表于 2021-11-28 21:09
真就那么简单???
        你的代码错的实在离谱万里!!!

不对劲啊,我输入啥,他就输出啥。没输出最长单词
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-28 22:01:25 | 显示全部楼层
小黄练编程 发表于 2021-11-28 22:00
不对劲啊,我输入啥,他就输出啥。没输出最长单词

      2 楼的代码现在再试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 03:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表