小马超会养兔子 2023-03-03 18:01 采纳率: 72.7%
浏览 162
已结题

码蹄集运行Java代码报错

我写马蹄集的题目MT2033碰碰车,写的Java代码IDE上可以正常运行,但是到了马蹄集里面提交就报错

img

img

img

运行执行代码的时候完整的报错信息为

img

img

img

img

img


我点击提交后的报错信息为

img

我的代码如下

import java.util.Scanner;
import java.util.*;

class Car {
    int id;
    int position;
    int direction;

    Car (){}

    Car(int id, int position, int direction) {
        this.id = id;
        this.position = position;
        this.direction = direction;
    }

    @Override
    public String toString() {
        return String.format("Car: id为%d, position为%d, direction为%d",id,position,direction);
    }
}

class Car_abstract {
    int pos;
    int dir;

    Car_abstract(){}

    Car_abstract(int pos, int dir) {
        this.pos = pos;
        this.dir = dir;
    }

    @Override
    public String toString() {
        return String.format("Car_abstract: pos为%d, dir为%d",pos,dir);
    }
}
class Main {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        // code here
        //获取数量和时间
        int carNum = input.nextInt();
        int time = input.nextInt();

        Car[] origin = new Car[carNum];
        Car_abstract[] process = new Car_abstract[carNum];

        for (int i = 0; i < carNum; i++) {
            int pos = input.nextInt();
            int dir = input.nextInt();

            Car c1 = new Car(i, pos, dir);
            Car_abstract c2 = new Car_abstract(pos,dir);

            origin[i] = c1;
            process[i] = c2;
        }

        // 将orign按照position进行排序
        Arrays.sort(origin, new Comparator<Car>() {
            @Override
            public int compare(Car o1, Car o2) {
                return o1.position - o2.position;
            }
        });

        // 遍历process,更新pos
        for (Car_abstract car_abs: process) {
            car_abs.pos = car_abs.pos + time * car_abs.dir;
        }

        //process数组按照pos进行排序
        Arrays.sort(process, new Comparator<Car_abstract>() {
            @Override
            public int compare(Car_abstract o1, Car_abstract o2) {
                return o1.pos - o2.pos;
            }
        });

        //遍历process,如果有pos相同则dir置0,这里先用两层for循环暴力解一下,以后可以用双指针优化
        for (int i = 0; i < carNum; i++) {
            for (int j = i+1; j < carNum; j++) {
                if (process[i].pos == process[j].pos) {
                    process[i].dir = 0;
                    process[j].dir = 0;
                }
            }
        }

        Car[] res = new Car[carNum];
        for (int i = 0; i < carNum; i++) {
            Car finalCar = new Car(origin[i].id, process[i].pos, process[i].dir);
            res[i] = finalCar;
        }

        // 将result数组按照id进行排序
        Arrays.sort(res, new Comparator<Car>() {
            @Override
            public int compare(Car o1, Car o2) {
                return o1.id - o2.id;
            }
        });

        // 输出结果
        for (int i = 0; i < carNum; i++) {
            System.out.println(String.format("%d %d", res[i].position, res[i].direction));
        }
        input.close();
    }
}

我网上查了都说是JDK版本的问题,但是在马蹄集里面我也没办法改它的JDK,因此想请教大家。

  • 写回答

5条回答 默认 最新

  • 极客智能体-在线 2023-03-03 18:07
    关注

    以下答案基于GPT3.5大模型与博主波罗歌编写:

    • 根据你提供的信息,这个错误可能与Java版本有关。您可以尝试将Java代码版本更改为与马蹄集使用的版本相同的版本。您可以从马蹄集使用的控制台中查找更多有关Java版本的信息。确保您的Java代码可以在相同的Java版本上运行。

    • 除此之外,您还可以尝试使用不同的IDE来编写Java代码。某些IDE可能会自动设置Java版本并在代码中包含必要的依赖项。

    • 最后,您还可以查看您的代码是否存在语法错误或逻辑错误。在Java代码中,在编译代码之前,您可以首先通过运行断言进行测试。它可以帮助您检测并修复错误,并防止在运行时遇到可能导致程序崩溃的问题。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月5日
  • 创建了问题 3月3日

悬赏问题

  • ¥15 SPSS分类模型实训题步骤
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么
  • ¥20 limma多组间分析最终p值只有一个
  • ¥15 nopCommerce开发问题
  • ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
  • ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
  • ¥15 pycharm输出和导师的一样,但是标红
  • ¥15 想问问富文本拿到的html怎么转成docx的
  • ¥15 我看了您的文章,遇到了个问题。