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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!