zoukankan      html  css  js  c++  java
  • 练习1-16 修改打印最长文本行的程序的主程序main, 使之可以打印任意长度的输入行的长度, 并尽可能多的打印文本。

    先粘贴一遍原程序, 在此基础上改改看。

    #include <stdio.h>
    #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;

    }
    // getline函数: 讲一行读入到S中,并返回其长度
    int getline(char s[], int lim)
    {
    int c, i;
    for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c != ' '; ++i)
    s[i] = c;
    if(c == ' '){
    s[i] = c;
    ++i;
    }
    s[i] = '';
    return i;
    }

    //copy 函数:将from复制到to;这里假定to足够大


    void copy(char to[], char from[])
    {
    int i;

    i = 0;
    while ((to[i] = from[i]) != '')
    ++i;
    }

    以下是答案,看完答案,题目的要求能稍微懂了,可是代码的理解还是不够!

    #include <stdio.h>
    #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)
    printf("%d, %s", len, line);
    if(len > max){
    max = len;
    copy(longest, line);
    }
    if(max > 0)
    printf("%s", longest);
    return 0;

    }
    // getline函数: 讲一行读入到S中,并返回其长度
    int getline(char s[], int lim)
    {
    int c, i, j;
    j = 0;
    for(i = 0; (c = getchar()) != EOF && c != ' '; ++i)
    if(i < lim - 2)
    {
    s[j] = c;
    ++j;
    }
    if(c == ' '){
    s[j] = c;
    ++j;
    ++i;
    }
    s[j] = '';
    return i;
    }

    //copy 函数:将from复制到to;这里假定to足够大


    void copy(char to[], char from[])
    {
    int i;

    i = 0;
    while ((to[i] = from[i]) != '')
    ++i;
    }

  • 相关阅读:
    SQL 连接 JOIN 例解。(左连接,右连接,全连接,内连接,交叉连接,自连接)
    HttpWatch工具简介及使用技巧
    橙色在网页设计运用:36个启发灵感的案例
    JS Date格式化为yyyyMMdd类字符串
    60款很酷的 jQuery 幻灯片演示和下载
    浅谈SQL Server中统计对于查询的影响
    C#创建Windows Service(Windows 服务)基础教程
    使用分页方式读取超大文件的性能试验
    240多个jQuey插件
    ASP.NET性能优化之负载均衡
  • 原文地址:https://www.cnblogs.com/jango/p/3379799.html
Copyright © 2011-2022 走看看