ACM输入输出--多组测试用例--C、C++、Java

本文详细介绍了在ACM竞赛中如何有效地处理多组测试用例,包括不同编程语言(C/C++, Java)下读取输入数据的格式、多组数据的读取方式以及输入输出格式的注意事项。特别强调了遵循题目要求的重要性以及避免使用文件输入的方法。

最近在练习一些关于ACM的题,往往会有多组测试用例,不知道该怎么办,查找资料总结之。

C和C++:必须是 int  main()提交,输入和输出的格式一定要按照题目要求的去写,否则提交不过。输入不可用文件输入。

Language

C

C++

To read numbers

int n;
while(scanf("%d", &n) != EOF)
{
  ...
}

int n;
while (cin >> n)
{
  ...
}

To read characters

int c;
while ((c = getchar()) != EOF)
{
  ...
}

char c;
while (cin.get(c))
{
  ...
}

To read lines

char line[1024];
while(gets(line))
{
  ...
}

string line;
while (getline(cin, line))
{
  ...
}


Java:必须是public class Main提交,并且不能带包名,输入和输出的格式一定要按照题目要求的去写,否则提交不过。输入不可用文件输入。使用

Scanner sc=new Scanner(System.in);

1.  多组数据,每组数据一个n(5<= n <=10^6)。
接下来n个整数Xi (1<=Xi<=10^6)。

Sample Input
4
1 2 3 4
5
1 2 6 5 4
这种使用
while(sc.hasNext()){
n=sc.nextInt();
int a[]=new int [n];
for(int i=0;i<n;i++){
a[i]=sc.nextInt();
}

}

2. 多组数据
input
5
20
30
40
每组是一个测试用例,
int n;
while(sc.hasNext()){
n=sc.nextInt();

}
3. 一个n,加上一个大小为n的数组
input
2
sdfgdsg
dgsfdg
使用:
Scanner sc = new Scanner(System.in);  
int n = sc.nextInt();  
for(int i=0;i<n;i++){  
String str = sc.next();  
......  
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值