• POJ 入门


    先复习一下C的一些基本概念

    1、C标准化输出:scanf

    int m,n;
    scanf("%d%d",&n,&m);

    实际上scanf是有返回值的,且返回值的类型为int,为输入的个数。如:

    int m,n;
    printf("%d", scanf("%d%d",&n,&m) );
    
    //输入 12  56
    //输出 2
    
    //输入 2  a   a输入失败
    //输出 1
    
    //输入 a  5   a输入失败,则后面的也失败,故输出为0
    //输出 0

    scanf还有一个返回值EOF(即-1,符号常量),代表输入数据已经结束,如:

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int a,b;
        while(scanf("%d%d",&a,&b) != EOF){
            printf("%d
    ",a+b);
        }
        return 0;
    }

    在Windows下,按Ctrl+z,再按回车即可结束输入。

     

    2、C++的标准化输出:cin

    cin表达式的值,只能为true(成功读入所有变量) 和false

    对应的一直输入为:

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int a,b;
        while(cin>>a>>b)  // 注意这里不能加;否则不执行后面的
        {
            cout << a+b << endl;
        }
        return 0;
    }

    Windows停止同按Ctrl+z  回车

    例如:输入若干个(不知道多少个)正整数,输出其中的最大值

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int a,mx=0;
        while(scanf("%d",&a) != EOF){
            if (a>mx){
                mx = a;
            }
            printf("%d
    ",mx);
        }
        return 0;
    }

    3、用freopen重定向输入

    调试程序时,每次运行程序都要输入测试数据,太麻烦

    可以将测试数据存入文件,然后用freopen将输入由键盘重定向为文件,则运行程序时,就不需要输入数据了。:

    #include <iostream>
    using namespace std;
    
    int main()
    {
        freopen("E:\CodeBlocks\Project_\POJ\test1\input.txt","r",stdin); // \为转义   且注意交到oj上的时候注意把它注释掉
        // 此后所有输入都来自文件 input.txt
        int a,mx=0;
        while(scanf("%d",&a) != EOF){
            if (a>mx){
                mx = a;
            }
        }
        printf("%d
    ",mx);
        return 0;
    }

    input文件为:

    运行结果为:

  • 相关阅读:
    Doing Homework 简单dp&&状态压缩
    嫖裤子序列
    王宁宁宁
    友军寻路法
    Viviani
    ccf 201909-3
    ccf 201909-5
    链式前向星
    ccf-201909-04
    ccf -201909-2
  • 原文地址:https://www.cnblogs.com/cymwill/p/9277313.html
Copyright © 2020-2023  润新知