Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/47: Рейтинг темы: голосов - 47, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 30

Перевернуть двумерный массив

18.09.2016, 20:08. Показов 9764. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Требуется помощь, не могу понять, как правильно поменять элементы в столбцах двумерного массива, что бы те, записались правильно, с одномерным еще понятно, а вот как сделать то же для двумерного? Может кто что-то подсказать? Или показать один из множества вариантов.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import java.io.IOException;
import java.util.*;
public class Java_PR2 {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
      
    
        Scanner sc = new Scanner(System.in);
        Random rand= new Random();
        System.out.print("1. Random\n2. Input\nChoose: ");
        
        int input = 0;
        try {
            input = System.in.read();
        } catch(IOException ex)  {}
        int n,m;
      
        char ch = (char)input;
        switch (ch)        {
            case '1':
            {
                //Input
               System.out.print("Input N: ");
                if(sc.hasNextInt()) { 
                 n = sc.nextInt(); 
                  } 
                      else {
                           System.out.println("Input is NOT INTEGER!!!");
                           return;
                           }
               System.out.print("Input M: ");
                if(sc.hasNextInt()) {
                 m = sc.nextInt(); 
                  } 
                      else {
                           System.out.println("Input is NOT INTEGER");
                           return;
                           }
        
                
                //Matrix 
                System.out.println("Created Matrix N*M: "+m+";"+n);
                int arr[][] = new int [n][m];
                int arrR[][] = new int [n][m];
                    for(int i=0; i< arr.length;i++){
                        for(int j=0; j< arr.length;j++){
                            arr[i][j] = rand.nextInt(10);
                        }
                    }
 
                    for(int i=0; i< arr.length;i++){
                        for(int j=0; j< arr.length;j++)
                            System.out.print(arr[i][j]+"  ");
                        System.out.println();
                        }
                    System.out.println("-----------");
                    System.out.println("Reversed Matrix");
                    
//Конкретно здесь я хочу сделать реверс, но не понимаю каким образом
                    for(int i=0; i< arr.length;i++){
                        for(int j=0; j< arr.length;j++)
                            arrR[i][j] = arr[i][j];    //Не понимаю(Объясните как мне задать обратные значения)
                        System.out.println();
                        }
//А здесь вывод
                    for(int i=0; i< arr.length;i++){
                        for(int j=0; j< arr.length;j++)
                            System.out.print(arrR[i][j]+"  ");
                        System.out.println();
                     }
                
                   
            } break;
Добавлено через 21 минуту
Хотел использовать метод reverse() из класса ArraysUtils, но насколько я понял, он только для одинарных массивов...
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.09.2016, 20:08
Ответы с готовыми решениями:

Создать двумерный массив, опираясь на другой двумерный массив
У меня есть такой массив 0 0 0 0 0 0 0 6 3 2 2 8 9 3 7 6 8 3 4 5 1 0 0 0 0 0 0 0 0 0 0 0 0...

Как перевернуть массив?
Дан массив из не четных чисел от 1 до 99. - заполнить массив значениями. - вывести на экран (от 1 до 99). - вывести массив в обратном...

Перевернуть массив без создания нового.
static int massback() { int inputmas=inputmass(); // inputmass(); - функция для ввода массива. int backmass = new int ; ...

9
31 / 31 / 12
Регистрация: 25.07.2015
Сообщений: 120
18.09.2016, 20:25
Kha787, я с Apache еще не сталкивался. Но вот что скажу тебе на это:
Цитата Сообщение от Kha787 Посмотреть сообщение
но насколько я понял, он только для одинарных массивов...
Двумерный масив - это массив массивов. То есть ты можешь взглянуть на него как на одномерный массив. Вроде бы даже в книге писали, что многомерных массивов в принципе нет, т.к. это массивы массивов
Если я правильно понял как ты хочешь перевернуть, то тебе достаточно поменять местами внутренние массивы.
0
0 / 0 / 0
Регистрация: 15.09.2016
Сообщений: 4
18.09.2016, 20:52
int arr[][] = new int [n][m];
int arrR[][] = new int [m][n]; //поменять местами размерность
for (int i = 0; i < arrR.length; i++){
for (int j = 0; j <arrR[i].length; j++){
arrR[i][j] = arr[j][i];
}
}
0
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 30
18.09.2016, 23:08  [ТС]
striker24, если поменять местами внутренние массивы, то мы получим смену строк и столбцов, а мне нужно столбцы поменять местами

Добавлено через 8 минут
sekrot, я уже пробовал так , таким манером идет смена столбцов на строки, но не их обратная последовательность )
0
17 / 17 / 8
Регистрация: 18.09.2012
Сообщений: 184
18.09.2016, 23:22
Kha787, Если я правильно понял условие, то как-то так
Java
1
2
3
4
5
6
7
8
int temp = 0;
        for(int i = 0; i < m; i++){
            for(int j = 0; j < n / 2; j++){
                temp = matr[i][j];
                matr[i][j] = matr[m - i - 1][n - j - 1];
                matr[m - i - 1][n - j - 1] = temp;
            }
        }
0
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 30
18.09.2016, 23:30  [ТС]
knf, к сожалению не то, получаю такой результат:
ввожу:
5 6
1 2
получаю:
2 6
1 5
а нужно:
6 5
2 1
0
17 / 17 / 8
Регистрация: 18.09.2012
Сообщений: 184
18.09.2016, 23:35
Kha787, Тогда
Java
1
2
3
4
5
6
7
8
 int temp = 0;
        for(int i = 0; i < m; i++){
            for(int j = 0; j < n / 2; j++){
                temp = matr[i][j];
                matr[i][j] = matr[i][n - j - 1];
                matr[i][n - j - 1] = temp;
            }
        }
0
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 30
19.09.2016, 00:00  [ТС]
knf, уже такое)
3 9
8 7
и
3 8
9 7

но еще 1 забавно, почему выводит через раз вывод нормальный??
0
17 / 17 / 8
Регистрация: 18.09.2012
Сообщений: 184
19.09.2016, 00:05
Лучший ответ Сообщение было отмечено Kha787 как решение

Решение

Kha787, Странно, что у тебя так получается. Вот проверяю.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int matr[][] = {{3, 9}, {8, 7}};
int temp = 0;
        for(int i = 0; i < m; i++){
            for(int j = 0; j < n / 2; j++){
                temp = matr[i][j];
                matr[i][j] = matr[i][n - j - 1];
                matr[i][n - j - 1] = temp;
            }
        }
 
for(int i = 0; i < m; i++){
            for(int j = 0; j < n; j++){
                System.out.print(matr[i][j] + " ");
            }
            System.out.println();
        }
3 9
8 7

9 3
7 8

Наверно, ты индексы перепутал.
1
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 30
19.09.2016, 00:32  [ТС]
knf, Благодарю, вся проблема была в том, что я не закрыл скобку в for и он не остановился на нужном месте! Спасибо большое, наконец-то разобрался!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.09.2016, 00:32
Помогаю со студенческими работами здесь

Перевернуть массив встроенными функциями языка Java
Доброго времени суток. Проблема такая есть задача в массиве массивов перевернуть каждую вторую строку. Сделал как знал. Но условие стоит,...

Не могу найти ошибку. Создать массив, заполнить его случайными элементами, распечатать, перевернуть
Создать массив, заполнить его случайными элементами, распечатать, перевернуть, и снова распечатать(при переворачивании нежелательно...

Массив: Создать двумерный массив, заполнив его согласно заданной схеме

Как строковый массив из чисел преобразовать в двумерный массив int[][]
Ребят, помогите пожалуйста с задачей Имеется массив String a, в котором хранятся числа: . Нужно преобразовать его в двумерный...

Создать двумерный массив из произвольных чисел, и отсортировать массив по убыванию
необходимо создать двумерный массив из произвольных чисел, и отсортировать массив по убыванию.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru