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

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

Статья из группы Архив info.javarush
участников
Кухня(); Задание N16. - 1 Правила [Одномерные массивы] 16. В одномерном массиве размещены: в первых элементах значения аргумента, в следующих – соответствующие им значения функции. Напечатать элементы этого массива в nпараллельных столбцов (аргумент и значения функции).
Комментарии (25)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
RabenokDmitry
Уровень 21
10 февраля 2015, 23:49
public static void PrintPair(int[] array) {
        if (array.length % 2 != 0)
            throw new IllegalArgumentException("Не всем элементам есть значение функции");
        for (int i = 0; i < array.length / 2; i++) {
            System.out.println(array[i] + " - " + array[i + array.length / 2]);
        }
    }
tsev
Уровень 30
25 августа 2014, 14:20
void printSequencesOfTwoArrayElements(int[] arr, int maxColumns) {
    int column = 1;
    StringBuilder stringBuilder = new StringBuilder();
    for(int i = 0; i < arr.length;) {
        stringBuilder.append("(").append(arr[i++]).append(",").append(arr[i++]).append(")");
        if(column == maxColumns) {
            stringBuilder.append("\n");
            column = 0;
        } else {
            stringBuilder.append("\t");
        }
        column++;
    }
    System.out.println(stringBuilder.toString());
}
Docktor91
Уровень 40
25 августа 2014, 14:22
замудренно как то))
tsev
Уровень 30
25 августа 2014, 14:24
line 8: column = 1;
Sultan
Уровень 16
25 августа 2014, 14:27
не, column = 0, так после условия column++, и в следующей итерации column будет = 1.
tsev
Уровень 30
25 августа 2014, 14:27
ну я так понял, что в условии тире не хватает:
Напечатать элементы этого массива в n-параллельных столбцов (аргумент и значения функции).
Sultan
Уровень 16
25 августа 2014, 14:28
во-первых, массив задается в виде { x1, x2,… y1, y2,… }, как я понял.
во-вторых, выравнивание табуляцией может не помочь, если будут пары с достаточной разницей в длине
Sultan
Уровень 16
25 августа 2014, 14:28
о как)
Sultan
Уровень 16
25 августа 2014, 14:29
а я подумал опечатка: лишняя буква
tsev
Уровень 30
25 августа 2014, 14:48
1) так и есть;
2) второй аргумент для вывода в формате «n-параллельных столбцов»;
3) табуляция больше не для выравнивания, а просто как разделитель «элементов».
tsev
Уровень 30
25 августа 2014, 14:58
вы правы, тогда логичнее вот так:
void printSequencesTwoArrayElements(int[] arr, int maxColumns) {
    if(maxColumns < 1 || arr.length%2 != 0) {
        throw new IllegalArgumentException();
    }
    int column = 1;
    StringBuilder stringBuilder = new StringBuilder();
    for(int i = 0; i < arr.length;) {
        stringBuilder.append("(").append(arr[i++]).append(",").append(arr[i++]).append(")");
        if(column == maxColumns) {
            stringBuilder.append("\n");
            column = 1;
        } else {
            stringBuilder.append("\t");
            column++;
        }
    }
    System.out.println(stringBuilder.toString());
}
Voronblack
Уровень 17
25 августа 2014, 13:07
И как за вами хоть что то успеть?
Docktor91
Уровень 40
25 августа 2014, 13:18
))))
String[] mes=new String[3];
mes[0]="кто первый встал того и тапки";
mes[1]="кто успел тот и съел";
mes[2]="кто не успел - тот опоздал";
int iMes=(int)(Math.random()*3);
System.out.println(mes[iMes]);
Sultan
Уровень 16
25 августа 2014, 13:19
ставь пробелы вокруг операторов,!
Docktor91
Уровень 40
25 августа 2014, 13:27
не царское это дело)
Sultan
Уровень 16
25 августа 2014, 13:30
скажешь это hr-менеджеру
Docktor91
Уровень 40
25 августа 2014, 13:33
обязательно
terranum
Уровень 28
25 августа 2014, 13:36
Да зачем успевать, читаешь задание, решаешь для себя, потом смотришь что нам народ написал, вливаешься в дискуссию. :)
Sultan
Уровень 16
25 августа 2014, 13:06
public static void method(double[] a) {
    for (int i = 0; i < a.length / 2; i++) {
        System.out.println(a[i] + " : " + a[i + a.length / 2]);
    }
}
terranum
Уровень 28
25 августа 2014, 13:55
Поправлю:
System.out.print(arr[i] + " " + arr[i + arr.length / 2 - 1]);
Sultan
Уровень 16
25 августа 2014, 13:57
подумай еще раз
Sultan
Уровень 16
25 августа 2014, 13:59
terranum
Уровень 28
25 августа 2014, 14:34
Тфу, что я тупанул.
terranum
Уровень 28
25 августа 2014, 14:36
Сейчас буду, разбираться как я вообще к этому пришел)))
Docktor91
Уровень 40
25 августа 2014, 13:05
public static void printKeyValue(int... mas)
    {
        if (mas.length % 2 == 1)
            mas = Arrays.copyOf(mas, mas.length + 1);
        int half = mas.length / 2;
        for (int i = 0; i < half; i++)
        {
            System.out.println(mas[i] + "\t=\t" + mas[i + half]);
        }

    }