关于C语言数组的问题,这个程序万千读不懂

//源代码如下
#include<stdio.h>
#include<stdlib.h>
#define MAXLINE 1000
//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;
}
main()
{
int len;//当前行长度
int max;//目前为止发现的最长行长度
char line[MAXLINE];// 当前输入行
char longest[MAXLINE];// 用于保存最长的行
max = 0;//初始化max
printf("\t\t\t\t统计最长行\n");
while((len = getline(line,MAXLINE)) > 0)
if(len > max)
{
max = len;
copy(longest,line);
}
if(max > 0)
printf("%s",longest);
system("pause");
return 0;
}

第1个回答  2012-09-26
//源代码如下
#include<stdio.h>
#include<stdlib.h>
#define MAXLINE 1000
//getline函数:将一行读入到 s 中并返回其长度
int getline(char s[],int lim)
{
int c,i;
for(i = 0;i < lim-1&&((c = getchar())) != EOF&& c != '\n';++i) // i赋值0,直到超过lim或者输入为EOF,也就是输入ctrl+z,或者换行
s[i] = c; // 将输入的字符赋值给数组
if(c == '\n') // 如果是因为换行结束for循环的,将换行也赋值进去
{
s[i] = c;
++i;
}
s[i] = '\0'; // 加上字符串结束符'\0'
return i; // 返回输入字节数
}
//copy函数:将from复制到to;这里假定to 足够大;
void copy(char to[],char from[])
{
int i;
i = 0;
while((to[i] = from[i]) != '\0') // 将from字符串一个个字符复制给to字符串,知道字符串结束
++i;
}
int main()
{
int len;//当前行长度
int max;//目前为止发现的最长行长度
char line[MAXLINE];// 当前输入行
char longest[MAXLINE];// 用于保存最长的行
max = 0;//初始化max
printf("\t\t\t\t统计最长行\n"); // 打印
while((len = getline(line,MAXLINE)) > 0) // 返回大于0的时候继续循环
{
if(len > max) // 如果输入的长度大于max,将长度赋值给max,因此max是最长的长度
{
max = len;
copy(longest,line); // 将line字符串拷贝给longest
}
}
if(max > 0) // 如果max大于0,打印字符串
printf("%s",longest);
system("pause");
return 0;
}
第2个回答  2012-09-26
楼主你要表达什么?提问之前是否认真查过资料,程序的目的看注释也能知道,另外如果这程序是 本人写的,那你无敌了。
第3个回答  2012-09-26
大部分我看懂了 但是也有地方看不懂 c好久没碰了 都在弄c++ 不过等会我会再学c的 我们加个qq以后一起讨论讨论啊 609058055本回答被提问者采纳
第4个回答  2012-09-26
这个没啥难的吧,应该能看懂呀!
第5个回答  2012-09-26
这个不太难吧
相似回答
大家正在搜