-5
不被顯示的出界異常和我的代碼仍然運行的Java不會趕上OutOfBounds異常
import java.util.*;
import java.io.*;
public class pr50
{
static String[] arr;
static int modes;
static int old;
static int[] nums;
public static void main(String[] args) throws IOException
{
Scanner in = new Scanner(new File("pr50.dat"));
int limit = in.nextInt();
in.nextLine();
for(int x = 0; x < limit; x++)
{
arr = in.nextLine().split(" ");
nums = new int[arr.length];
for(int b = 0; b < arr.length; b++)
{
nums[b] = Integer.valueOf(arr[b]);
}
Arrays.sort(nums);
old = 0;
modes = 0;
for(int y = 0; y < nums.length; y++)
{
int current = nums[y];
for(int c = 0; current == nums[y+c] && nums[y+c] < nums.length ; c++)
{
if(old < 1)
modes++;
else
old++;
current = nums[y+x];
}
}
if(modes > 1)
System.out.println(modes + " MODES");
else
System.out.println(modes + " MODE");
}
}
}
下面是一個示例文件:
2
56 77 66 22 33 55 66 66 66
80 93 87 72 80 77 43 87 98 99 100
是的。這是一些代碼好吧。那麼你認爲問題在哪裏? – John3136
如果它運行,那麼沒有例外。給出實際引發異常的示例輸入 –
在循環的第二次迭代中,current == nums [y + c]將爲false,並且for循環將終止。將不會拋出OOB異常。 –