作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在练习动态编码,所以这里我想接受n个测试用例,但是当我输入多个测试用例时它只接受一个测试用例。假设我输入的测试用例数量为 2,玩家和恶棍的数量为 3,并输入了他们的能量,但它只运行一次迭代,程序在下一次迭代时结束。如何让它接受很多测试用例?
/* Read input from STDIN. Print your output to STDOUT*/
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
class Testcase // Name should be in PASCAL
{
int N;
int [] play;
int [] villain;
String status;
public Testcase (int n) { // Constructor
this.N=n;
play = new int [N];
villain=new int [N];
}
}
public class Main {
static List<Testcase> caseno=new ArrayList<Testcase>();
public static void main(String args[] ) throws Exception {
List<Testcase> caseno=new ArrayList<Testcase>();
Scanner sc=new Scanner(System.in);
//int n1=10;
System.out.println("Enter the number of Test Cases:");
int n1=sc.nextInt();
int i,j;
Testcase t;
for(i=0;i<n1;i++)
{
//int n=6;
System.out.println("Enter the number of players and villains:");
int n=sc.nextInt();
t=new Testcase(n);
System.out.println(t.N+" "+t.play.length);
System.out.println("Enter the Player Energies");
for(i=0;i<n;i++)
{
t.play[i]=sc.nextInt();
}
System.out.println("Enter the Villain Energies");
for(i=0;i<n;i++)
{
t.villain[i]=sc.nextInt();
}
Arrays.sort(t.play);
Arrays.sort(t.villain);
}
for(Testcase t1:caseno)
{
for(i=0;i<t1.N;i++)
{
System.out.println(t1.villain[i]+" "+t1.play[i]);
}
int flag=0;
for(i=0;i<t1.N;i++)
{
if(t1.play[i]<t1.villain[i])
{
flag=0;
}
else
{
flag=1;
t1.status="LOSS";
break;
}
}
if(flag==0)
{
t1.status="WON";
}
System.out.println(t1.status);
}
for (Testcase j1:caseno)
{
System.out.println(j1.status);
}
//Write code here
}
}
最佳答案
您的情况的问题是变量的可见性。我将简短地向您展示问题:
int i;
for (i=0; i<2; i++) { // loop 1
for (i=0; i<3; i++) { // loop 2
// do something
}
}
在loop2中,变量i将从0运行到2。在第二个循环退出后,变量“i”保存数字3(这就是它退出的原因)。因此循环 1 也将退出,因为已达到结束条件 (i<2)。但这不是您想要的。
最好像这样超越问题:
for (int i1=0; i1<2; i1++) { // loop 1
for (int i2=0; i2<3; i3++) { // loop 2
// do something
}
}
这样每个变量都有自己的作用域,并且不会干扰其他同名变量。现在它将运行loop2(“i2”==0、==1和==2)两次(一次“i1”==0,一次“i1”==1)。
这就是您的示例中的基本问题。
您可以在此处找到更多信息:
关于java - 如何让这个程序接受n个测试用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55749044/
我是一名优秀的程序员,十分优秀!