| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1100 人关注过本帖
标题:c语言求最长的单词以及单词长度 出现runtime error
只看楼主 加入收藏
Lukyo
Rank: 1
等 级:新手上路
帖 子:33
专家分:6
注 册:2016-9-18
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:4 
c语言求最长的单词以及单词长度 出现runtime error
代码如下
程序代码:
#include <stdio.h>
#include <string.h>
int main()
{
    char String[100], ch[100][100], temp[100];
    int i,j,k;
    while(gets(String) != NULL)
    {
        j = 0;
        for(i = 0; String[i] != '\0'; i++)
        {
            for(k = 0; String[i] != ' '; i++,k++)
            {
                if(String[i] == '\0')
                {
                    ch[j][k] = '\0';
                    goto end;
                }
                else
                ch[j][k] = String[i];

            }
            ch[j][k] = '\0';
            j++;
        }
        end: ;

        for(i = 0; i <= j; i++)
        {
            for(k = i + 1; k <= j; k++)
            {
                if(strlen(ch[i]) < strlen(ch[k]))
                {
                    strcpy(temp, ch[i]);
                    strcpy(ch[i], ch[k]);
                    strcpy(ch[k], temp);
                }
            }
        }

        printf("%d %s\n",strlen(ch[0]),ch[0]);
    }

    return 0;
}

图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: c语言 单词 
2016-11-27 15:29
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
#include <stdio.h>
#include <string.h>
#define M 100
int main()
{
    char st[M],tem[M][M];
    int n,m;
    while(gets(st)!=NULL)
    {
        n=0;m=0;
        for(int i=0,k=0;i<=strlen(st);++i)
        {
            if(st[i]==' '||st[i]==0)
            {
            tem[n++][k]=0;
            if(m<strlen(tem[n-1]))    m=strlen(tem[n-1]);
            k=0;
            }
            else tem[n][k++]=st[i];
        }
        for(int i=0;i<n;++i)
            if(strlen(tem[i])==m)    printf("%d %s\n",strlen(tem[i]),tem[i]);
    }
    return 0;
}

[此贴子已经被作者于2016-11-27 21:39编辑过]

2016-11-27 16:15
Lukyo
Rank: 1
等 级:新手上路
帖 子:33
专家分:6
注 册:2016-9-18
收藏
得分:0 
回复 2楼 linlulu001
这样还是不行呐
提示陷入死循环,但是我却不知道是哪里
2016-11-27 19:49
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:10 
#include <stdio.h>
#include <string.h>
#define M 100
int main()
{
    char a[M][M];
    int i=0,j=0;

    while (scanf("%s",a[i])!=EOF)  //EOF的作用是按Ctrl+z 退出循环~
        if (strlen(a[i++])>strlen(a[j]))
            j=i-1;


    printf("最长单词为:%s\n长度为:%d\n",a[j],strlen(a[j]));

    return 0;
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-27 21:32
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
回复 3楼 Lukyo
修改了,你试试。
2016-11-27 21:41
快速回复:c语言求最长的单词以及单词长度 出现runtime error
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022921 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved