2 weixin 34433129 weixin_34433129 于 2016.04.24 21:24 提问

这段C程序设计语言书上的代码,运行后按回车只换行并没有输出最长的行,为什么

#include
#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;
}
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++;
}

2个回答

jianjiu7
jianjiu7   2016.04.26 00:50
已采纳
 #include<stdio.h>
#define MAXLINE 1000
int getline(char line[],int maxline);
void copy(char to[],char from[]);
int 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=0;
while((to[i] = from[i]) !='\0')
i++;
}

不知道你为什么没运行出来,你的代码写的有些问题,少了些东西,比如 int main ,#include 我试了一下,没问题,图片说明
就这样

jianjiu7
jianjiu7   2016.04.26 00:52

少了stdio.h

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
c/c++回车不换行
c/c++回车不换行
关于IDLE(Python shell)中只换行,不执行的操作办法
关于如何在IDLE(Python shell)中实现只换行,不执行的目的的问题,刚好在网上看到了有很多人在问,且都没有人给出正确的解答,决定抽时间为大家解答一下这个问题:如果想实现上图的效果--&amp;gt;只要在编辑完一行之后,按下Ctrl+回车键即可是不是很简单呢?哈哈如果有帮到大家,点个赞或者收藏之类的方式,让我为帮助了大家开心一下咯   嘿嘿...
VC++中回车键不能换行
VC++中当回车键不能换行时应该就是因为自己不小心按到了键盘上的insert键,要想恢复只需要再按一下就可以了。
使回车键不能换行
document.getElementById("introduce_str").onkeydown=function(e){ if(e.keyCode == 13){ // 避免回车键换行 e.preventDefault(); } }ID为introduce_str加在输入元素即可
Word中在标题按回车换行后自动使用标题样式
<!--v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}--> Normal 0 7.8 磅 0 2
奇怪的回车换行问题
奇怪的回车换行问题 一直对回车换行问题没有怎么注意,只知道,在windows中,回车换行是\r\n (0x0D,0x0A)。在类unix中,是\n (0x0A)。以为没有什么大的问题,没想到,这次开发一个小程序,却让我对这个问题大为头痛。 首先发现这个问题是这样的: 我的这个程序采用的是Extjs+php的方式,通过ajax进行通讯。其中有个页面,如图: 两个文本框,一个text,
C语言如何输出回车换行
1 使用字符串,输出在一个字符串结尾加上“\r\n”,如“hello\r\n”; 2 使用字符数组拼接成字符串(在嵌入式c的使用中是常见的),在数组末尾增加0x0d和0x0a; 如unsigned char data[8] data[0] = ‘h’; data[1] = ‘e’; data[2] = ‘l’; data[3] = ‘l’; data[4] = ‘0’; data[5
Delphi编程中使用回车键不换行处理方法!!
我以前遇到过Delphi编程中使用回车键不换行的问题,一直没有找到正确处理方法,以至于每次都重新安装Delphi,今天在XE8中再次遇到这样问题,万幸找到了正确的解决方法: 可能使用过程中不小心按了insert键,只需要再次按insert键解除!
putty和超级终端中,对于回车与换行的处理
测试方法: 用虚拟串口软件虚拟出一对串口,比如COM2和COM3。分别用putty和串口调试工具打开这两个串口。 测试结果: 1,putty中按Enter键,只发送一个字节(0x0D,即'\r', Return)。 2,putty收到0x0D后,只将光标移至行首。即行坐标不变,列坐标清0. 3,putty收到0x0A后,只将光标下移一行,即行坐标加一,列坐标不变。 4,putt
终于搞懂了回车与换行的区别
转载于:http://www.pythontab.com/html/2017/linuxkaiyuan_0115/1116.html 关于换行和回车其实平时我们不太在意,所以关于两者的区别也不太清楚,在平时开发时可能会遇到一些文件处理的问题,放到不同的操作系统上出现各种坑。那么回车和换行到底有哪些区别呢?今天咱们就来总结一下。 1. 由来 在计算机还没有出现之前,有一种叫做电传打