问题描述
- 这段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(lineMAXLINE))>0)
if(len >max){
max = len;
copy(longestline);
}
if(max >0)
printf(""%s""longest);
return 0;
}
int getline(char s[]int lim){
int ci;
for(i = 0;i<lim-1&&(c = getchar())!=EOF&&c!='n';++i)
s[i] = c;
if(c == 'n'){
s[i] = c;
i++;
}
s[i] = '';
return i;
}
void copy (char to[]char from[])
{
int i;
i = 0;
while((to[i] = from[i]) !='')
i++;
}
解决方案
#include<stdio.h>#define MAXLINE 1000int 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(lineMAXLINE))>0)if(len >max){max = len;copy(longestline);}if(max >0)printf(""%s""longest);return 0;}int getline(char s[]int lim){int ci;for(i = 0;i<lim-1&&(c = getchar())!=EOF&&c!='n';++i)s[i] = c;if(c == 'n'){s[i] = c;i++;}s[i] = '';return i;}void copy (char to[]char from[]){int i=0;while((to[i] = from[i]) !='')i++;}
不知道你为什么没运行出来,你的代码写的有些问题,少了些东西,比如 int main #include 我试了一下,没问题
就这样
解决方案二:
少了stdio.h
时间: 2024-12-09 11:54:08