ACMer菜鸟心得之ACM的输入

Posted xdaniel

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACMer菜鸟心得之ACM的输入相关的知识,希望对你有一定的参考价值。

  大一开始了解ACM,兴趣使然,看了些刘汝佳写的书,颇有心得,于是记录下来,不定时更新。

  ACM的输入:

  

#define LOCAL
#include <stdio.h>
int main()
{
#ifdef LOCAL
    freopen("data.in","r",stdin);
    freopen("data.out","w",stdout);
#endif
    printf("Hello World!
");
    return 0;
}

这是一份比较典型的竞赛代码,其中采用的是重定向的方法,build该代码时,系统会在当前目录下自动生成data.in和data.out两个文件,顾名思义,输入部分保存在data.in中,输出部分保存在data.out中,再和OJ系统评判,重定向的部分被写在#ifdef和#endif之间,其意义为:只有定义了LOCAL,才能编译两条freopen语句。

 

另外,C语言里的很多缩写,知道全称后,你能对其有更深的理解,例如,stdio全称为Standard Input and Ouput(标准输入输出),stdlib全称为standard libarary(标准库)。

 

ACM的输入(凭我的阅历)有以下几种:

1.直接输入  //不多说

2.多组输入

多组输入分为两种,一种是输入一个案例后,立马输出该案例的结果

#include <stdio.h>
int main()
{
    int n,i,a;
    while(scanf("%d",&n) != EOF) {
        while(n--) {
            scanf("%d",&a);
            printf("%d
",!a);
        }
    }
    return 0;
}

其中EOF意思是End Of File,是ACM中经常用到的一个玩意。

另一种是多组输入多组输出,用数组保存结果即可。

以上是关于ACMer菜鸟心得之ACM的输入的主要内容,如果未能解决你的问题,请参考以下文章

ACM__菜鸟之经典错误

一个合格的ACMer的代码当中,都藏着哪些秘密?

暑训心得体会

struggle in the ACM

ACM必备的快速输入输出(Java)

退役了,永远的ACMer,永远的ProLights