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);
}
return0;
}
C++
#include <iostream>
using namespace std;
int main(){
int a,b;
while(cin >> a >> b){
cout << a+b << endl;
}
return0;
}
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 = Int();
int b = Int();
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 = writer("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){
python怎么读取dat文件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])); }
}
可以参考⼀些判断平台
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论