| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 868 人关注过本帖
标题:请高手帮忙看下程序错在哪!
只看楼主 加入收藏
matouw773z
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-9-29
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:4 
请高手帮忙看下程序错在哪!
新手求助,这是从书上摘下来的程序,想在自己的电脑上运行,不知道怎么回事编译没有问题,出现黑框输入之后按回车怎么按也不出结果、麻烦高手看下到底是什么问题?非常感谢!
#include <stdio.h>
#define MAXLINE 1000 /* 最大输入行的大小 */
int getline (char line[ ], int maxline );
void copy ( char to[ ], char from [] );
/* 打印最长的输入行 */
main ( )
{
int len; /* 当前行长度 */
int max; /* 至目前为止所发现的最长行的长度 */
char line[MAXLINE]; /* 当前输入的行 */
char longest[MAXLINE]; /* 用于保存最长的行 */
max = 0;

while ( ( len = getline (line, MAXLINE) ) > 0 )
if (len > max) {
max = len;
copy ( longest, line );
}
if (max > 0) /* 有一行 */
printf ("%s" , longest ) ;
return 0 ;
}

/* getline:将一行读入s中并返回其长度 */
int getline (char s [ ], int lim)
{
int c, i;
for (i = 0; i < lim -1 && (c = getchar ( ) ) != EOF && c != '\n'; ++i )
s[i] = c;
if (c == '\n' ) {
s[i] = c;
++i;
}
s[i] = '\0';
return i;
}

/* copy:从from拷贝到to; 假定to足够大 */
void copy ( char to [ ], char from [ ])
{
int i;
i = 0;
while ( ( to[ i ] = from [ i ]) != '\0')
++i;
}
搜索更多相关主题的帖子: max line int char copy 
2017-10-01 17:37
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:10 
这段程序是做什么的?想怎样做法?
2017-10-01 20:20
matouw773z
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-9-29
收藏
得分:0 
实现的功能是当发现某一个新读入的行比以前读入的最长的行还要长时,就要把该新行保存起来,并打印出最长行!
2017-10-02 15:25
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用matouw773z在2017-10-2 15:25:33的发言:

实现的功能是当发现某一个新读入的行比以前读入的最长的行还要长时,就要把该新行保存起来,并打印出最长行!

是不是这样:
图片附件: 游客没有浏览图片的权限,请 登录注册

#include <stdio.h>
#define MAXLINE 1000 /* 最大输入行的大小 */
int getline (char line[ ], int maxline );
void copy ( char to[ ], char from [] );
/* 打印最长的输入行 */
main ( )
{
    int len; /* 当前行长度 */
    int max; /* 至目前为止所发现的最长行的长度 */
    char line[MAXLINE]; /* 当前输入的行 */
    char longest[MAXLINE]; /* 用于保存最长的行 */
    max = 0;

    while ( ( len = getline (line, MAXLINE) ) > 0 )
    {
        if (len > max)
        {
            max = len;
            copy ( longest, line );
            printf ("输出:%s\n" , longest ) ;
        }
    }
    return 0 ;
}

/* getline:将一行读入s中并返回其长度 */
int getline (char s [ ], int lim)
{
    printf ("输入:") ;
    int c, i;
    for (i = 0; i < lim -1 && (c = getchar ( ) ) != EOF && c != '\n'; ++i )
        s[i] = c;
    s[i] = '\0';
    return i;
}

/* copy:从from拷贝到to; 假定to足够大 */
void copy ( char to [ ], char from [ ])
{
    int i;
    i = 0;
    while ( ( to[ i ] = from [ i ]) != '\0')
        ++i;
}
2017-10-02 16:19
matouw773z
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-9-29
收藏
得分:0 
就是这样、非常感谢!
2017-10-09 09:52
快速回复:请高手帮忙看下程序错在哪!
数据加载中...
 
   



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

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