Как напечатать один и тот же массив дважды, но горизонтально? - Джава

Мне трудно заставить это напечатать так, как хочет мой профессор. Я пробовал print, println, \t и \n, однако результаты выводятся либо вертикально, либо рядом друг с другом, либо каждый дублированный номер рядом друг с другом по горизонтали. Вот что хочет мой профессор:

The results (printed twice) are:
14 81 94 91 47 57 98 89 82 15 
14 81 94 91 47 57 98 89 82 15

мои выводы состояли из:

The results (printed twice) are:
14 14
81 81
94 94
91 91
47 47
57 57
98 98
89 89
82 82
15 15
The results (printed twice) are:
14 14 81 81 94 94 91 91 47 47 57 57 98 98 89 89 82 82 15 15
The results (printed twice) are:
14      14 81   81 94   94 91   91 47   47 57   57 98   98 89   89 82   82 15   15

Это мой код до сих пор:

System.out.println("The results (printed twice) are:\t");
        for (i = 0; i< arr.length; i++){
            arr[i] = rand.nextInt(100) + 1;
            int[] arrb = arr.clone();
        System.out.print(arr[i] + " " + arrb[i] + " ");
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
33
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Вы пробовали System.out.println ??? Что-то подобное:

System.out.println("The results (printed twice) are: ");
        for (i = 0; i< arr.length; i++){
            arr[i] = rand.nextInt(100) + 1;
            int[] arrb = arr.clone();
            System.out.println(arr[i]);  
            System.out.println(arrb[i]);        
}

Или вы можете попробовать сделать 2D-массив и заполнить строку [0] своим обр.
Затем заполните строку [1] своей обработкой.

Не знаю, если это то, что ты хочешь?

Mertyon 09.04.2022 00:40

У меня есть на самом деле. Это просто дает мне второй результат, который я опубликовал для своих выходов до сих пор.

Savannah M 09.04.2022 00:41

А как насчет 2D-массива? Просто заполните строки с помощью arr и arrb

Mertyon 09.04.2022 00:45
Ответ принят как подходящий

Вместо этого используйте что-то вроде этого:

System.out.println("The results (printed twice) are:\t");    
for (i = 0; i< arr.length; i++){
    arr[i] = rand.nextInt(100) + 1;
int[] arrb = arr.clone();

System.out.print(Arrays.toString(arr));
System.out.println();
System.out.print(Arrays.toString(arrb));

Пример вывода:

[1,2,3,4]
[1,2,3,4]

Если вы хотите, чтобы выход был 1 2 3 4, используйте простой цикл for

for (int i = 0; i<arr.lenght; i++){
    System.out.print(arr[i] + " ")
}
System.out.println();
for (int i = 0; i<arrb.lenght; i++){
    System.out.print(arrb[i] + " ")
}

Ваш текущий код пытается сделать 2 вещи в одном цикле:

  • Генерация нового случайного числа.
  • Распечатайте его (дважды).

Это никогда не сработает - вам нужно сначала напечатать другие числа, а затем «начать сначала» и напечатать первое число во второй раз. Вы не можете попросить java «прыгать между строками» — стандартный вывод — это довольно абстрактная концепция. Возможно, это линейный принтер; вы не можете попросить его проглотить страницу, которую он только что распечатал, обратно в себя и распечатать что-то, например.

Таким образом, ответ заключается в разделении ваших задач. Обычно это хорошая идея для любой задачи программирования любой полосы:

  • Заполните массив int[], генерируя случайные числа.
  • Распечатайте массив int[] - все, что может быть внутри него.
  • Проделайте предыдущее действие два раза подряд.

Другими словами, это включает как минимум 3 цикла for.

int LEN = 100;

int[] numbers = new int[LEN];
for (int i = 0; i < LEN; i++) {
  numbers[i] = rnd.nextInt(100) + 1;
}

Это одна работа. Не усложняйте ситуацию, пытаясь также печатать оттуда. Вы просто делаете одну работу.

Распечатать одна линия очень просто:

for (int i = 0; i < LEN; i++) {
  System.out.print(numbers[i] + " ");
}
System.out.println();

И как мы делаем что-то более одного раза? с.. для петель:

for (int print = 0; print < 2; print++) {
  for (int i = 0; i < LEN; i++) {
    System.out.print(numbers[i] + " ");
  }
  System.out.println();
}

Нет необходимости клонировать ваш массив.

    int[] arr = new int[10];
    Random rand = new Random();

    System.out.println("The results (printed twice) are:\t");
    for (int i = 0; i < arr.length; i++) {
        arr[i] = rand.nextInt(100) + 1;
        System.out.print(arr[i] + " " + arr[i] + " ");
        System.out.println();
    }

Результат:

 The results (printed twice) are:    
 58 58 
 31 31 
 22 22 
 81 81 
 36 36 
 38 38 
 40 40 
 9 9 
 10 10 
 11 11 

Что-то вроде этого может работать:

int[] arr = new int[] { 14,81,94,91,47,57,98,89,82,15 };

    System.out.println("The results (printed twice) are:\t");

    int counter = 0;

    while(counter <= 1) {

        for (int i = 0; i< arr.length; i++) {
            System.out.print(arr[i] + " ") ;
        }
        counter++;
        System.out.println();
    }

Или, если вы хотите, чтобы вложенный цикл for также выполнял эту работу:

int[] arr = new int[] { 14,81,94,91,47,57,98,89,82,15 };

    System.out.println("The results (printed twice) are:\t");

    for (int i = 0; i <= 1 ; i++){

        for (int j = 0; j < arr.length; j++) {
            System.out.print(arr[j] + " ") ;
        }
        System.out.println();
    }

И тогда вывод должен быть:

The results (printed twice) are:
14 81 94 91 47 57 98 89 82 15 
14 81 94 91 47 57 98 89 82 15

По сути, логика здесь просто повторяет печать списка два раза с другим циклом for или while, оба работают одинаково в приведенных выше примерах, если у вас есть какие-либо вопросы, вы можете ответить на мой ответ.

Другие вопросы по теме