Вот написал код:
Код | package u; public class Main { final private static int N = 50; final private static java.io.BufferedReader jin = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
private static double min_rad(double x[], double y[], int n) { double min = 0; double temp; int i; for (i = 0; i < n; i++) //Если значание темп больше минимума if ((temp = Math.sqrt(x[i] * x[i] + y[i] * y[i])) > min) //Тогда минимуму присвоить темп min = temp; return min; //Вызвать минимум и передать аргументом функции } public static void main(String[] args) throws java.io.IOException,MyException { int n; //Объявляю 2 масива которыее могут содержать //не более 50 действительных чисел каждый double x[] = new double[N], y[] = new double[N]; double radius; int i;
System.out.print("Input n: "); //Здесь происходит ввод количества натуральных чисел n = Integer.parseInt(jin.readLine()); //Цикл нужен для того, чтоб каждое число мы вводили с клавиатуры try{ for (i = 0; i < n; i++) { System.out.print("Input x[" + i + "]: "); String str1 = jin.readLine(); String str2 = jin.readLine(); if(str1.equals(".") || str1.equals("0")){ throw new MyException("Ошибка, вы ввели неверные данные"); } if(str2.equals(".") || str2.equals("0")){ throw new MyException("Ошибка, вы ввели неверные данные"); }
x[i] = Double.parseDouble(str1); System.out.print("Input y[" + i + "]: ");
y[i] = Double.parseDouble(str2);
} //Вызываю функцию min_rad и присваиваю её значение перменной radius radius = min_rad(x, y, n); //Вывожу радиус найменьшего круга System.out.print("Minimum radius: " + radius); }catch(MyException m){ System.out.println(m.getMessage()); }
}
}
|
Код | package u; public class MyException extends Exception{ public MyException(){ super(); };
public MyException(String msg) { super(msg); };
}
|
Программа компилируется, но если ввести вначале цифру 2, а затем какую-то цифру программа выбрасывает исключение, не то которое я написал ,а вообще даже если вветси цифру программа выбрасывается. |