这是我的代码。 请检查它给出运行时异常的位置。 我写了一段代码来解决这个问题。
我一直得到NZEC(运行时错误),但是我找不到代码的哪一部分会导致任何异常,因为它只涉及简单的算术运算(不应该被零除以)。
代码的逻辑并不重要,我只是想知道异常可能隐藏在哪里。
任何人都可以发现任何错误?感谢。
import java.io.BufferedReader;
import java.io.File; // headers
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.Arrays;
import java.util.Scanner;
import java.util.Vector;
import java.math.BigInteger;
public class Mkequal // class
{
public static void main(String[] args) throws IOException // main class
{
BufferedReader br = new BufferedReader(new InputStreamReader(System. in));
Scanner sc = new Scanner(System. in );
int t = Integer.parseInt(br.readLine());
while (t-- > 0) // while loop
{
int sum = 0;
int n = Integer.parseInt(br.readLine()); //number of elements in array
int arr[] = new int[n];
for (int i = 0; i < n; i++)
arr[i] = sc.nextInt();
for (int i = 0; i < n; i++)
sum += arr[i];
if (sum % n == 0) //if divisible by n,print n
System.out.println(n);
else
System.out.println(n - 1);
}
}
}
答案 0 :(得分:0)
您很可能在程序中创建了太多内存。 你必须在while循环之外创建数组(arr)并在循环内操作它。
答案 1 :(得分:0)
int t = Integer.parseInt(br.readLine());
可能导致NumberFormatException
(Integer.parseInt)
但你要使用IDE的控制台(例如,这里是Eclipse's console)来查看堆栈跟踪 - 它会指向发生异常的实际行