当前位置: 首页 > 知识库问答 >
问题:

获取异常java。util。编译[duplicate]时出现NoTouchElementException

易瀚漠
2023-03-14

我正在尝试根据输入打印输出Win or Lose,但收到错误。请在我的代码问题下方-

一种新的格斗游戏变得很流行。里面有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");
            }
        }
    }    
}

共有1个答案

范振海
2023-03-14

在我的IDE中,代码是运行的,但您实现了错误的赢或输决策,因为现在您的输出只基于最后一对玩家和反派,因此如果所有玩家都输了,最后一个赢了,那么您的结果就是赢,我认为这是错误的。

如果你只基于每个玩家击败每个恶棍,那么如果一个人输了,你就输了整场比赛:

for (int i = 0; i < number; i++) {
    result = result && players_energy[i] > villain_strength[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;
 类似资料:
  • 我在POM中有以下依赖项 我在客户端请求中也注册了这个类,但当我启动JAVA应用程序尝试POST时,我得到了以下错误 在应用程序初始化期间,应用程序资源模型的验证失败。[[致命]未找到public com.rm类型参数的注入源 可能出了什么问题……有人能建议一下吗

  • 在Android Studio的编译过程中,我得到了时间异常错误。我该怎么修好它?

  • 当我尝试在错误代码下面运行但得到错误时,我也使用了“givenArray[i]=sc.next();或givenArray[i]=sc.nextLine();”但仍然失败。我尝试了许多不同的方法,但仍然得到相同的错误。似乎扫描仪无法读取数组我需要此代码的帮助,请提前谢谢。 提供的输入:输入第一个数组的长度:4并单击Enter, 输入第二个数组的长度:4并单击Enter, 输入第一个数组:2,3,4

  • 所以我有一个方法,如果发生异常,我想在该方法中重试操作。如果第二次发生异常,我希望在另一个类调用该方法的地方捕获异常。这是正确的做法吗?

  • 我知道有很多关于这个例外的帖子,但是我不能解决这个问题。我认为必须编辑类路径来解决它。我试图在hadoop架构体系中运行一个名为远程地图的程序。这是我得到的错误。 Echo$CLASSPATH给出了一个空行 cat~/。bash_简介说 更新: $HADOOP_HOME $HADOOP_CLASSPATH 有人能帮我解决这个问题吗? 谢谢

  • jar-cvfe-dhj。jar DefaultHadoopJobDriver 我的Hadoop作业只有一个类“DefaultHoopJobDrive”,它扩展了配置和实现工具,并将方法作为作业创建和inputpath、outpurpath集的唯一代码运行。我也在使用新的API。