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


<?php
while ($dat = fgets(STDIN))
    $dat = explode(" ", $dat);
    if (count($dat) == 2) 
        echo sprintf("%d\\n", intval($dat[0]) + intval($dat[1]));
    

  • 可以参考一些判断平台详情

以上是关于oj判断机制:程序怎样输入多组测试数据的主要内容,如果未能解决你的问题,请参考以下文章

JAVA如何判断输入结束

九度oj 1048

大一C语言问题,怎样输入多行测试数据再输出多行结果???

九度oj 题目1063:整数和

九度oj 1063 整数和

杭电OJ2016