oj判断机制:程序怎样输入多组测试数据
Posted 咳咳n
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oj判断机制:程序怎样输入多组测试数据相关的知识,希望对你有一定的参考价值。
**
程序怎样输入多组测试数据?
**什么是EOF?
判题机在判题过程中会将题目的每一组测试单元的【Input文件流】链接到stdin,将stdout重定向到用户的【Output文件流】 因此,你的程序应该从标准输入流stdin获取输出,并将结果输出到标准输出流stdout中。 对于交互评测的题目,在每次输出内容到stdout后,请刷新stdout的缓冲区,以便让判题程序能够正确的读取到你的回答。
系统规定,每个题目可以存在多个测试数据单元(文件),每个测试单元可以存在多组测试数据。 当存在多组测试数据的时候,你的程序应当不停的从stdin中获取测试数据,直到达到文件末端EOF(End of File)。
幸运的是,如果你使用了语言封装的标准流操作函数, 如:C语言的scanf、printf等;C++语言的cin、cout等;Java语言的System.out,Scanner等;python语言的input()、print()等, 你将很方便的能够得知当前的读写是否到达了EOF。你可以借助循环语句来连续读取数据和计算结果,并在抵达EOF后终止循环,退出程序。
下面是『A+B』问题的标准代码
C语言
#include <stdio.h>
int main()
int a,b;
while(scanf("%d %d", &a, &b) != EOF)
printf("%d\\n",a+b);
return 0;
C++
#include <iostream>
using namespace std;
int main()
int a,b;
while(cin >> a >> b)
cout << a+b << endl;
return 0;
Java
import java.util.Scanner;
public class Main
public static void main(String[] args)
Scanner scan = new Scanner(System.in);
while(scan.hasNext())
int a = scan.nextInt();
int b = scan.nextInt();
System.out.println(String.format("%d", a + b));
Python 2
-- coding: utf-8 --
while True:
try:
a, b = map(int, raw_input().split())
except:
break
print(a + b)
Python 3
-- coding: utf-8 --
coding:utf-8
import sys
import codecs
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())
while True:
try:
a, b = map(int, input().split())
except:
break
print(a + b)
Go
package main
import "fmt"
func main()
var a,b int
for
_, e := fmt.Scanln(&a, &b)
if (e != nil)
break
fmt.Println(a+b)
<?php
while ($dat = fgets(STDIN))
$dat = explode(" ", $dat);
if (count($dat) == 2)
echo sprintf("%d\\n", intval($dat[0]) + intval($dat[1]));
- 可以参考一些判断平台详情
以上是关于oj判断机制:程序怎样输入多组测试数据的主要内容,如果未能解决你的问题,请参考以下文章