牛客Java输入处理_牛客网在线判题系统使用帮助

本文介绍了牛客网在线判题系统的编译器信息,强调了对于不同编程语言的输入输出处理方式,特别是对于Java,类名必须为Main且不应包含package信息。文中以A+B题目为例,展示了C、C++、Java、C#、Python、Python3、JavaScript、PHP、Go和R语言的输入输出处理代码,并解释了判题系统状态的各类情况,如答案正确、运行错误等。
摘要由CSDN通过智能技术生成

1 判题系统的编译器信息

C/C++:clang++ 3.9 -std=c++14 -O -Wsign-compare -Wc++11-extensions

JAVA:javac 1.8 -encoding=utf-8

Python: python 2.7.3

Python3: python 3.2.3

C#: mcs 4.0.1

Go: go 1.8.3

2. 判题系统的输入输出

2.1 对于这种有函数定义的题目,你只要完成函数,返回相关的值就可以,不需要处理任何输入输出,不要在函数里输出任何东西。

2.2 对于传统ACM的OJ模式题目,你的程序需要stdin(标准输入)读取输入,然后stdout(标准输出)来打印结果,举个例子,你可以使用c语言的scanf或者c++的cin来读取输入,然后使用c语言的printf或者c++的cout来输出结果。代码禁止读取和写入任何文件,否则判题系统将会返回运行错误。OJ一次处理多个case,所以代码需要循环处理,一般通过while循环来出来多个case。以下是A+B题目的样例代码,http://www.nowcoder.com/questionTerminal/dae9959d6df7466d9a1f6d70d6a11417

C 64位输出请用printf("%lld")

#include

int main() {

int a,b;

while``(scanf(``"%d %d"``,&a, &b) != EOF)``//注意while处理多个case

printf(``"%d\n"``,a+b);

return 0``;

}

|

C++ 64位输出请用printf("%lld")

#include

using namespace std;

int main() {

int a,b;

while``(cin >> a >> b)``//注意while处理多个case

cout << a+b << endl;

}

JAVA,注意类名必须为Main, 不要有任何package xxx信息

注意hasNext和hasNextLine的区别,详细见

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

while (in.hasNextInt()) {``//注意while处理多个case int a = in.nextInt();

int b = in.nextInt();

System.out.println(a + b);

}

}

}

C#

public class Program {

public static void Main() {

string line;

while ((line = System.Console.ReadLine ()) != null``) {``//注意while处理多个case

string[] tokens = line.Split();

System.Console.WriteLine(``int``.Parse(tokens[``0``]) + int``.Parse(tokens[``1``]));

}

}

}

Python

import sys

try``:

while True:

line = sys.stdin.readline().strip()

if line == ''``:

break

lines = line.split()

print int``(lines[``0``]) + int``(lines[``1``])

except:

pass

Python3

import sys

for line in sys.stdin:

a = line.split()

print``(``int``(a[``0``]) + int``(a[``1``]))

JavaScript(V8)

while``(line=readline()){

var lines = line.split(``' '``);

var a = parseInt(lines[0]);

var b = parseInt(lines[1]);

print(a+b);

}

JavaScript(Node)

var readline = require('readline');

const rl = readline.createInterface({

input: process.stdin,

output: process.stdout

});

rl.on('line', function(line){

var tokens = line.split(' ');

console.log(parseInt(tokens[0]) + parseInt(tokens[1]));

});

Php

while``(``fscanf``(STDIN, "%d %d"``, $a``, $b``) == 2)

echo (``$a + $b``).``"\n"``;

Go

package main

import (

"fmt"

)

func main() {

a:=0

b:=0

for {

n, _ := fmt.Scan(&a,&b)

if n == 0 {

break

} else {

fmt.Printf("%d\n",a+b)

}

}

}

R语言

lines=readLines(``"stdin"``)

for``(l in lines){

if``(l == ""``){

break``;

}

ll = strsplit(l, " "``)[[1]]

a=ll[1];

b=ll[2];

cat(as.numeric(a)+as.numeric(b));

cat(``'\n'``);

}

3. 判题系统状态

等待评测: 评测系统还没有评测到这个提交,请稍候

正在评测: 评测系统正在评测,稍候会有结果

编译错误:您提交的代码无法完成编译,点击“编译错误”可以看到编译器输出的错误信息

答案正确: 恭喜!您通过了这道题

运行错误: 您提交的程序在运行时发生错误,可能是空指针

部分正确: 您的代码只通过了部分测试点,继续努力!

格式错误: 您的程序输出的格式不符合要求(比如空格和换行与要求不一致)

答案错误: 您的程序未能对评测系统的数据返回正确的结果

运行超时: 您的程序未能在规定时间内运行结束

内存超限: 您的程序使用了超过限制的内存

异常退出: 您的程序运行时发生了错误

返回非零: 您的程序结束时返回值非 0,如果使用 C 或 C++ 语言要保证 int main 函数最终 return 0

浮点错误: 您的程序运行时发生浮点错误,比如遇到了除以 0 的情况

段错误 : 您的程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)等情况引起

多种错误: 您的程序对不同的测试点出现不同的错误

内部错误: 请仔细检查你的代码是否有未考虑到的异常情况,例如非法调用、代码不符合规范等。

4. 开始练习吧

5. 有任何问题加QQ群 244930442

BNUEP Offline Judge 北京师范大学珠海分校离线评测系统是在具备题目测试数据的情况下,能无联网自动评测ACM/ICPC模式的源代码评测系统(即本地测试工具、评测机)。它主要有以下功能(所有的功能都无需联网,在本机即可实现): *评测核心功能: 基本具备Online Judge的判题核心功能,如编译代码、内存限定,时间限定,获取代码长度等; *支持多种语言: 1.0 Beta2版本支持C/C++、Pascal、C#、JAVA; *出题模式 可以在有标准输入数据和标准程序的情况下,由系统产生标准输出数据,并可批量保存,同时自动命名标准输出数据的后缀; *文本高亮对比 在判题后,可以直接在本系统中将自己的程序输出和标准输出进行高亮的文本差异对比,操作类似于一些文本对比软件,在一定程度上可以较方便地发现WA代码的出错细节; *支持不限时执行代码 这个功能可以在一定程度上检测TLE代码的算法是否正确的,当然,不能是跑一天都没跑出来的程序; *打包与加密测试数据 使用加密后的数据可以正常判题,但不显示标准输出。这个功能是为了弥补放出去给别人评测的测试数据是明文的缺陷。加密之后评测方就看不到测试数据。这样就既可以实现离线评测,又可以实现Online Judge上的对测试数据屏蔽; ACM-ICPC简介: ACM国际大学生程序设计竞赛(简称ACM-ICPC)是由国际计算机界具有悠久历史的权威性组织ACM学会(Association for Computing Machinery)主办,是世界上公认的规模最大、水平最高、参与人数最多的大学生程序设计竞赛,其宗旨是使大学生能通过计算机充分展示自己分析问题和解决问题的能力。 ACM-ICPC的每一道题,都具备题目、需求描述、输入格式描述、输出格式描述、样例输入和样例输出共六大信息,有些题目还有一定的提示。此外,裁判还额外存储了关于该题的一组或多组对选手屏蔽的标准输入和标准输出数据,这些测试数据已经经过验证符合题意要求。当用户提交一道题目的源码之后,裁判会将该源码放入评测系统中编译运行,并使用标准输入作为用户程序的输入,然后获取用户程序的输出,接着,将用户程序输出和标准输出比较,最后返回给用户一个评判结果。评判结果包括:Accepted(测试通过)、Compile Error(编译失败)、Memory Limit Exceed(内存超出限制)、Presentation Error(格式错误)、Runtime Error(运行时错误,可能是数组越界,改写只读的内存,除零,栈或堆溢出等错误)、Time Limit Exceed(时间超出限制)、Wrong Answer(答案错误)等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值