文档章节

OJ小技巧——语言标准和输入

HappyBKs
 HappyBKs
发布于 2014/12/07 22:59
字数 576
阅读 109
收藏 0


做ACM题最头痛的是什么?对于刚刚与OJ系统过招的新人来说,不管你之前是不是编程达人,OJ的一些输入输出的潜规则都会让你为无尽的OJ报错弄得火大。今天,朕沐浴之后来总结一下。


首先是语言标准。

一些OJ的编译运行环境十分奇葩,根本没有任何说明。

如C、C++用的是GCC4,还是VS的高版本编译器。Java用的jdk版本是什么。(有些OJ只支持jdk1.4,这就很令人抓狂了,这意味着拆箱装箱不能用,Scanner也不能用)。记得某OJ上支持C#程序的提交,我觉得很高兴,因为.Net的版本差异和前后兼容要好得多,我随便写了个简单的题,却发现编译错误,查看OJ的LOG,竟然发现C#的编译环境是Mono!差点没一口老血喷出来。


之后是选择IDE,这个就不多啰嗦了,我倒是很还念当年用VC6.0和Dev-C++的时光。

现在,自己按OJ的情况吧,谁会为了个OJ定制PC里的IDE呢。如,C++的

#<iostream>//GCC4
#<iostream.h>//VC6
#"iostream"//VC2003+
using namespace std;


再来,来点干货,自己也备着。总结一些输入输出的技巧。

读到文件的结尾,程序自动结束

C/C++

while( ( scanf(“%d”, &a) ) != -1 )
while( ( scanf(“%d”, &a) ) != EOF)
while( ( scanf(“%d”, &a) ) == 1 )
while( ~( scanf(“%d”, &a) )  )

C++

while( !cin.eof())

Java

Scanner scn = new Scanner (System.in);
scn.hasNext()

一些另类情况:

读到一个0时,程序结束

while( scanf(“%d”, &a) , a)
while( scanf(“%d”, &a)!=EOF && a)

读到多个0时,程序结束

while( scanf(“%d%d%d”, &a, &b, &c), a+b+c ) //a,b,c非负
while( scanf(“%d%d%d”, &a, &b, &c), a|b|c )


输入问题:(给出了C、C++、Java三种形式)

读一个整数: 

scanf("%d", &n); 

cin >> n; 

int n = sc.nextInt(); 

读一个字符串:

scanf("%s", s);

cin >> s; 

String s = sc.next(); 

读一个浮点数:

scanf("%lf", &t);

cin >> t; 

double t = sc.nextDouble(); 

读一整行:

gets(s); 

cin.getline(...); 

String s = sc.nextLine(); 








© 著作权归作者所有

共有 人打赏支持
上一篇: IR、NLP科普
下一篇: 101. Domino
HappyBKs

HappyBKs

粉丝 651
博文 306
码字总数 481268
作品 0
浦东
程序员
私信 提问
OJ提交题目中的语言选项里G++与C++的区别

今天poj又出现了 G++ Wa C++ Ac 的情况 特转学习 原文地址见最后 一、OJ提交题目中的语言选项里G++与C++的区别 http://www.th7.cn/Program/cp/201405/199001.shtml 首先更正一个概念,C++是一...

gentle_guan
2017/02/10
0
0
知识总结:那些年在编程题中踩过的坑

循环输入输出处理常见问题 1、为什么需要循环输入输出:通常来说OJ对于每道题里面有.in和.out文件,分别表示测试数据的输入和输出。如果某些编程题的所有数据都只做在一个.in和一个.out中,这...

牛客网
2017/12/25
0
0
xcode使用技巧_1

比较文件 xcode提供的比较两个文件内容是否相同或者不同, 哪里有什么不同. 2. xcode设置分栏显示 xcode设置分栏显示. 3. 设置App地区和app语言等信息 设置App地区和app语言等信息....

hell03W
2016/03/29
16
0
为什么 Python 对程序员重要?

Fredrik Haard最近发表了一篇“为什么Python对你如此重要”的文章,引起了开发者的热烈讨论。本文对其简要编译。 我相信Python对软件开发人员很重要。现今已经诞生了不少的编程语言,它们都有...

威廉亨利
2012/02/15
5.9K
44
三天学会HTML5 之第一天

引言 HTML5 一直是非常热门的话题,因此此系列文章主要从一些基本功能开始讲起,逐步深入了解HTML5的新概念。 首先了解一些基本的术语和概念。 SGML, HTML,XML三者之间的区别 Doc类型是什么 ...

葡萄城控件技术团队
2016/02/02
134
0

没有更多内容

加载失败,请刷新页面

加载更多

linux 扩展lv

相关概念 逻辑卷可以实现硬盘空间的动态划分和管理。 1】 物理卷 LV 处于最低层,可以是物理硬盘上的分区,也可以是整个物理硬盘 2】 卷组 VG 卷组建立在物理卷之上,一个卷组至少要包括一个...

hnairdb
23分钟前
1
0
如何快速定位Ruby函数源码

如何快速定位Ruby函数源码 1、gem gem which sidekiq 2、bundle bundle show redis 3、CTags Sublime extend ActiveSupport::Concernrescue_fromcurrent_company.cc_ad_tasks.creat......

mingle
24分钟前
1
0
基于 DataLakeAnalytics 的数据湖实践

随着软硬件各方面条件的成熟,数据湖(Data Lake)已经越来越受到各大企业的青睐, 与传统的数仓实践不一样的是,数据湖不需要专门的“入仓”的过程,数据在哪里,我们就从哪里读取数据进行分析...

阿里云云栖社区
25分钟前
1
0
word文档处理成富文本生成sql语句导入mysql

问题:需要将大量的已存在的word文档导入到web项目里在网站展示,不可能通过编辑录入的方式处理,通过程序实现。 解决思路:通过读取word文档处理成html,再获取html富文本内容,拼接成sql,...

S三少S
32分钟前
42
0
WAF开放规则定义权:专家策略+用户自定义策略=Web安全

在第一期“漫说安全”栏目中,我们用四格漫画的形式介绍了基于深度学习的阿里云WAF到底智能在哪里,能帮客户解决什么问题。 在今天的这期栏目里,我们依然通过漫画这种通俗易懂的方式,与大家...

迷你芊宝宝
36分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部