Мне трудно заставить это напечатать так, как хочет мой профессор. Я пробовал 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] + " ");
Вы пробовали 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] своей обработкой.
У меня есть на самом деле. Это просто дает мне второй результат, который я опубликовал для своих выходов до сих пор.
А как насчет 2D-массива? Просто заполните строки с помощью arr и arrb
Вместо этого используйте что-то вроде этого:
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 «прыгать между строками» — стандартный вывод — это довольно абстрактная концепция. Возможно, это линейный принтер; вы не можете попросить его проглотить страницу, которую он только что распечатал, обратно в себя и распечатать что-то, например.
Таким образом, ответ заключается в разделении ваших задач. Обычно это хорошая идея для любой задачи программирования любой полосы:
Другими словами, это включает как минимум 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, оба работают одинаково в приведенных выше примерах, если у вас есть какие-либо вопросы, вы можете ответить на мой ответ.
Не знаю, если это то, что ты хочешь?