JavaRush /Java блог /Архив info.javarush /Кухня(); Задание N47
terranum
28 уровень
Milan

Кухня(); Задание N47

Статья из группы Архив info.javarush
Кухня(); Задание N47 - 1 Правила [Одномерные массивы] 47. Дано действительное число x и массив A[n]. В массиве найти два члена, среднее арифметическое которых ближе всего к x.
Комментарии (7)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Kashey Уровень 11
13 сентября 2014
Тут ошибки нет?
for (int i = 0; i < a.length; i++)

i должно быть равно 1?
а то получается, что при первом проходе цикла в
if (Math.abs(temp) < Math.abs(diff))

сравниваешь одинаковые значения.
shcho_isle Уровень 11
12 сентября 2014

public static void task47 (double x, double[] a){
    if (a.length > 1) {
        double diff = (a[0] + a[1]) / 2 - x;
        double chl1 = a[0];
        double chl2 = a[1];
        double temp;
        for (int i = 0; i < a.length; i++)
            for (int j = i + 1; j < a.length; j++){
                temp = (a[i] + a[j]) / 2 - x;
                if (Math.abs(temp) < Math.abs(diff)) {
                    diff = temp;
                    chl1 = a[i];
                    chl2 = a[j];
                }
            }
        System.out.println(chl1 + " " + chl2);
    }
}