编译时获取异常java.util.NoSuchElementException

编译时获取异常java.util.NoSuchElementException,java,Java,我试图根据输入打印输出赢或输,但得到错误。请在下面的问题中输入我的代码- 一种新的格斗游戏变得很流行。里面有n个恶棍,每个人都有一些力量。游戏中有n个玩家,每个人都有一些能量。能量被用来杀死恶棍。只有当玩家的能量大于恶棍的力量时,恶棍才能被杀死 马克西正在比赛,在某个特定的时间,他想知道他是否有可能在球员和反派的能量和力量下赢得比赛。如果马克西的玩家能够用分配的能量杀死所有的恶棍,他将赢得这场比赛 输入格式 输入的第一行由许多测试用例T组成。 每个测试用例的第一行由许多反派和玩家N组成。 每个测

我试图根据输入打印输出赢或输,但得到错误。请在下面的问题中输入我的代码-

一种新的格斗游戏变得很流行。里面有n个恶棍,每个人都有一些力量。游戏中有n个玩家,每个人都有一些能量。能量被用来杀死恶棍。只有当玩家的能量大于恶棍的力量时,恶棍才能被杀死

马克西正在比赛,在某个特定的时间,他想知道他是否有可能在球员和反派的能量和力量下赢得比赛。如果马克西的玩家能够用分配的能量杀死所有的恶棍,他将赢得这场比赛

输入格式 输入的第一行由许多测试用例T组成。 每个测试用例的第一行由许多反派和玩家N组成。 每个测试用例的第二行由N个空间组成,由反派的力量分隔开。 每个测试用例的第三行由N个空间组成,由玩家的能量分隔

错误消息

Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at Main.main(Main.java:8)
我的代码

import java.util.*;
import java.lang.*;
import java.io.*;
        
public class Main {
    public static void main(String args[]) {
        Scanner input = new Scanner(System.in);
        int numberOfTestcases = input.nextInt();
        for (int k = 0; k < numberOfTestcases; k++) {
            int number = input.nextInt();
            System.out.println(number + "");
        
            // Scanner input = new Scanner(System.in);
            int[] players_energy = new int[number];
            int[] villain_strength = new int[number];
        
            for (int i = 0; i < villain_strength.length; i++) {
                System.out.println("Please enter villain strengths ");
                villain_strength[i] = input.nextInt();
            }
        
            for (int i = 0; i < players_energy.length; i++) {
                System.out.println("Please enter player energies ");
                players_energy[i] = input.nextInt();
            }
        
            for (int i = 0; i < players_energy.length; i++) {
                System.out.println("player energies are " + players_energy[i] + "");
            }
            for (int i = 0; i < villain_strength.length; i++) {
                System.out.println("villain strengths are " + villain_strength[i] + "");
            }
            Arrays.sort(players_energy);
            Arrays.sort(villain_strength);
        
            for (int i = 0; i < players_energy.length; i++) {
                System.out.println("player energies after sorting are " + players_energy[i] + "");
            }
            for (int i = 0; i < villain_strength.length; i++) {
                System.out.println("villain strengths after sorting are " + villain_strength[i] + "");
            }
            boolean result = true;
            for (int i = 0; i < number; i++) {
                if (players_energy[i] > villain_strength[i]) {
                    result = true;
                } else {
                    result = false;
                }
            }
            if (result) {
                System.out.println("WIN");
            } else {
                System.out.println("LOSE");
            }
        }
    }    
}

import java.util.*;
导入java.lang.*;
导入java.io.*;
公共班机{
公共静态void main(字符串参数[]){
扫描仪输入=新扫描仪(System.in);
int numberOfTestcases=input.nextInt();
for(int k=0;k反派力量[i]){
结果=真;
}否则{
结果=假;
}
}
如果(结果){
System.out.println(“WIN”);
}否则{
系统输出打印项次(“丢失”);
}
}
}    
}

在我的IDE中,代码运行,但您执行了错误的赢或输决策,因为现在您只根据最后一对玩家和反派进行输出,因此如果所有玩家都输,而最后一对赢,您的结果是
,我认为这是错误的

如果你只基于每个玩家打败每个恶棍,那么如果一个人输了,你就输掉了整个游戏:

for (int i = 0; i < number; i++) {
    result = result && players_energy[i] > villain_strength[i];
}
for(int i=0;i反派的力量[i];
}
如果是所有玩家的能量和所有恶棍的力量,那么比较这些总和:

int energySum = 0;
int strengthSum = 0;
for (int i = 0; i < number; i++) {
    energySum += players_energy[i];
    strengthSum += villain_strength[i];
}
boolean result = energySum > strengthSum;
int energySum=0;
内强度sum=0;
for(int i=0;istrengthSum;

我的意思是,当我在Intellij中运行代码时,代码运行没有任何错误。另外,
main
方法中的参数应该是
String[]args
-你是用
C
语言声明的。这对我也很有用,我想你的
“请输入反派力量”
东西只需要打印一次,因为反派/玩家的所有输入都在同一行。@AP11但不必,这回答了你的问题吗@李尔乌应该是强烈的推荐,而不是命令