Java 我在编码站点(codechef)的在线编译器上遇到运行时错误
我在一个编码站点的codechef在线编译器上遇到运行时错误。我已经看透了所有的数组越界条件。你可以找到问题所在 代码:Java 我在编码站点(codechef)的在线编译器上遇到运行时错误,java,runtime,Java,Runtime,我在一个编码站点的codechef在线编译器上遇到运行时错误。我已经看透了所有的数组越界条件。你可以找到问题所在 代码: 请详细说明错误的真正原因。请注意: 系统输出打印输入a、b、c; a=英寸,下一个颜色; b=英寸nextInt; c=英寸nextInt; 您要求输入字符a、b或c,使用 .nextInt 读像a、b、c这样的字符只会给你带来错误。如果希望将输入存储为整数,则使用解析 此外,请尝试使用异常处理: 试一试{ .... }捕获异常e{ .... } 运行时错误是?您得到的错误是
请详细说明错误的真正原因。请注意: 系统输出打印输入a、b、c; a=英寸,下一个颜色; b=英寸nextInt; c=英寸nextInt; 您要求输入字符a、b或c,使用 .nextInt 读像a、b、c这样的字符只会给你带来错误。如果希望将输入存储为整数,则使用解析 此外,请尝试使用异常处理: 试一试{ .... }捕获异常e{ .... }
运行时错误是?您得到的错误是什么??你能添加stacktrace吗?@UnknownOctopus实际上是先生,它的nzec,它是c的非零出口代码,它没有添加返回0;我假设它的数组在java中超出了范围。@digidude我在我的环境中没有得到任何错误。@GauravSharma。。。我在codechef上检查了NZEC的一些可能原因。您提供输入的方式可能存在问题。您的程序接受新行中的坐标,但它们通常提供由空格分隔的输入。。。。。可能是一个原因。查看此链接上的最后评论。。。。。。。。。。。。。。。。。。。。。。我明白您在那里做了什么:尝试使用异常处理。
import java.util.Scanner;
public class HighwayFactory {
int[] Warehousesx = new int[5000];
int[] Warehousesy = new int[5000];
int[] Pointsx = new int[5000];
int[] Pointsy = new int[5000];
double[] minDist = new double[5000];
double[] sumDistArr = new double[5000];
int a, b, c, nWare;
int tCases;
int minX, maxX = Warehousesx[0];
float x1, y1, x2, y2;
double[] distance = new double[5000];
double min = 0;
void gett() {
Scanner in = new Scanner(System. in );
System.out.println("enter no of test cases");
tCases = in .nextInt();
}
void start() {
gett();
for (int i = 1; i <= tCases; i++) {
getValues();
calcMinMax();
pointscalc();
distanceCalc();
}
}
void getValues() {
Scanner in = new Scanner(System. in );
System.out.println("enter value of n");
nWare = in .nextInt();
System.out.println("enter a,b,c");
a = in .nextInt();
b = in .nextInt();
c = in .nextInt();
System.out.println("enter co-ordinates of warehouses");
for (int i = 0; i < nWare; i++) {
Warehousesx[i] = in .nextInt();
Warehousesy[i] = in .nextInt();
}
}
void calcMinMax() {
int min = Warehousesx[0];
for (int i = 1; i < nWare; i++) {
if (Warehousesx[i] < min) {
min = Warehousesx[i];
}
}
minX = min;
for (int i = 0; i < nWare; i++) {
if (Warehousesx[i] > maxX) {
maxX = Warehousesx[i];
}
}
}
void pointscalc() {
for (int i = Math.abs(minX); i < Math.abs(maxX); i++) {
int min = minX;
Pointsx[i] = min;
Pointsy[i] = (-a * i - c) / b;
min++;
}
for (int j = Math.abs(minX); j < Math.abs(maxX); j++) {
double sumDist = 0;
x2 = Pointsx[j];
y2 = Pointsy[j];
for (int i = 0; i < nWare; i++) {
x1 = Warehousesx[i];
y1 = Warehousesy[i];
distance[j] = Math.sqrt(Math.pow((x2 - x1), 2) + Math.pow(y2 - y1, 2));
sumDist = distance[j] + sumDist;
}
sumDistArr[j] = sumDist;
}
}
void distanceCalc() {
int a = Math.abs(minX);
int b = Math.abs(maxX);
double min = sumDistArr[a];
for (int i = a + 1; i < b; i++) {
if (sumDistArr[i] < min) {
min = sumDistArr[i];
}
}
System.out.println(min);
}
public static void main(String[] args) {
HighwayFactory nh86 = new HighwayFactory();
nh86.start();
}
}