| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 546 人关注过本帖
标题:为什么这个程序运行出来没有任何结果了??求各位大神指点
只看楼主 加入收藏
pyw1688
Rank: 2
等 级:论坛游民
帖 子:18
专家分:17
注 册:2012-11-20
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:10 
为什么这个程序运行出来没有任何结果了??求各位大神指点
#include <stdio.h>
#define MAXLINE 1000
int getline (char line[],int maxline);
void copy(char to[],char from[]);
void 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;
}

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;
}

void copy(char to[],char from[])
{
    int i;
    i=0;
    while((to[i]=from[i])!='\0')
        ++i;
}
搜索更多相关主题的帖子: max void include return 
2012-11-20 23:35
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:5 
while((len=getline(line,MAXLINE))>0)
{
        if(len>max)
        {
            max=len;
            copy(longest,line);
        }
        if(max>0)
            printf("%s",longest);
}
少了括号了,那么始终停在那句while死循环了。

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-11-21 07:16
核晴核理
Rank: 3Rank: 3
来 自:北京
等 级:论坛游侠
帖 子:129
专家分:169
注 册:2012-6-14
收藏
得分:10 
我的办法是如下
程序代码:
#include <stdio.h>

 #define MAXLINE 1000

 int getline (char line[],int maxline);

 void copy(char to[],char from[]);

 void 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;
 }

int getline(char s[],int lim)

 {
     int c,i;
     for(i=0;i<lim-1&&(c=getchar())!='`' && c!='\n';++i)//换成一个用不到的字符,等你输入完了回车,输入`字符,再回车
         s[i]=c;
     if(c=='\n')
     {
         s[i]=c;
         ++i;
     }
     s[i]='\0';
     return i;

 }

void copy(char to[],char from[])

 {
     int i;
     i=0;
     while((to[i]=from[i])!='\0')
         ++i;

 } 
2012-11-21 09:41
pyw1688
Rank: 2
等 级:论坛游民
帖 子:18
专家分:17
注 册:2012-11-20
收藏
得分:0 
回复 3楼 核晴核理
我想问下原来那个程序是书上的那个怎么判断EOF,为什么为EOF时输入很多行都没有结果 这个是怎么回事,谢谢!
2012-11-21 23:05
pyw1688
Rank: 2
等 级:论坛游民
帖 子:18
专家分:17
注 册:2012-11-20
收藏
得分:0 
回复 3楼 核晴核理
就像这个很简单的程序
#include<stdio.h>
main()
{
double nc;
while(getchar()!=EOF)
nc++;
printf("%.0f\n",nc);
}
更本就没有输出 好多程序都用EOF,但是好像都不知道输出是什么
2012-11-21 23:25
youngdavid
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:698
注 册:2012-9-24
收藏
得分:0 
回复 5楼 pyw1688
用来统计输入字符数目,所以输出的nc是输入的字符数。
2012-11-22 21:50
核晴核理
Rank: 3Rank: 3
来 自:北京
等 级:论坛游侠
帖 子:129
专家分:169
注 册:2012-6-14
收藏
得分:0 
回复 5楼 pyw1688
不好意思,误人子弟了,刚才上网上搜了搜文本文档结束符EOF,当你输入完要输入的数据,可以按ctrl+z来触发EOF字符,并且回车,就能出来结果,我也学习了

[ 本帖最后由 核晴核理 于 2012-11-23 08:46 编辑 ]
2012-11-23 08:43
gtgtgh
Rank: 2
等 级:论坛游民
帖 子:10
专家分:31
注 册:2012-11-23
收藏
得分:2 
有结果啊。就是进入无限循环了。
2012-11-23 17:36
gtgtgh
Rank: 2
等 级:论坛游民
帖 子:10
专家分:31
注 册:2012-11-23
收藏
得分:3 
不过要先在WHILE那加个{}。这样的话就进入无限循环。最好是在WHILE那在另加个break;用于退出循环。
2012-11-23 17:40
gtgtgh
Rank: 2
等 级:论坛游民
帖 子:10
专家分:31
注 册:2012-11-23
收藏
得分:0 
而且。。。。为什么要写成这样复杂。。让我猜猜,是不是什么考题之类的。。
2012-11-23 17:41
快速回复:为什么这个程序运行出来没有任何结果了??求各位大神指点
数据加载中...
 
   



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

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